백준 - 사수아탕(2419)
·
PS
문제 먼저 사탕의 개수를 최대화 하는 문제는 kk번째 사탕을 tktk시간에 먹었다고 할때 tktk 합을 최소화 하는 문제와 동치라는것을 알 수 있다. (문제를 좀더 쉽게 하기 위해 일단 tkm이라는 가정을 하자.) 그리고 나서 가장 먼저 dp[l][r]을 사탕의 구간 lr 에 대해서 tk합의 최솟값으로 정의하려고 시도해 볼 수 있다. 하지만 이렇게 하면 적절한 점화식을 구할 수 없다. k번째로 먹은 사탕을 시간 tk때 먹었다고 하자. (tk의 정의가 이전과 다음에 주의하자.)우리는 최소화 하려는 대상은 t1+t2++tn 이다. 그런데 잘 생각해보면 t2,t3,,tn에는 모두 ..
백준 - 땅따먹기(6171)
·
PS
문제 먼저 wiwj,hihj 인 모든 (i,j) 쌍에 대해서 j번 직사각형을 제거할 수 있다.이를 통해 iO(N^2)dp.\text{dp}[i]:1 i\text{dp}[0] = 0$$\text{dp}[i] = \min_{0 \leqslant j  이제 CHT를 이용해서 O(N) 으로 문제를 풀면 된다.
백준 - 트리 색칠하기(1693)
·
PS
문제이 문제는 BarkingDog 님의 블로그를 참고했습니다. N개의 정점을 가진 트리에 대해 색깔의 개수가 bound되어 있다고 가정하고 계산해 봅시다. 먼저 다음과 같이 수열을 정의합시다.Sk : k개의 색깔로 최소 비용을 만들수 있는 트리의 정점 개수의 최솟값 수열을 이렇게 정의하는 이유는 다음과 같습니다.Sk=n이면 1~n개의 정점을 가진 트리는 색깔을 k개 이하만 사용해서 최솟값을 만들 수 있습니다.즉, 우리는 Sk100,000k를 찾으면 됩니다. 이제 k개의 색깔로 최소 비용을 만들수 있고, 정점 개수가 최소인 트리에 대해 생각해 봅시다.색깔이 k인 정점이 항상 존재하므로 root를 색깔이 k인 임의의 정점으로 정합시다.root의 색깔이 k이기 ..
백준 - RPG(1315)
·
PS
문제 문제에서 다음의 조건중 하나가 성립하면 i번 퀘스트를 깰수 있었다.1. STR STR[i] 2. INT INT [i]  게임 중간의 어떤 상태에 대해 생각해보자.조건 1에 의해 가장 마지막으로 깬 게임을 i번 게임, 조건 2에 의해 가장 마지막으로 깬 게임을 j번 게임이라고 하면, STR[k]STR[i] 인 k번 게임들과  INT [k]INT[i] 인 k번 게임들은 모두 깨져 있거나 깰 수 있다. STR에 의해 정렬된 퀘스트 배열 a와 INT에 의해 정렬된 퀘스트 배열 b가 있다고 하자. 우리가 방금 한 관찰에 따르면 게임을 플레이 하는 도중 퀘스트들의 상태는 ..
백준 - 가로등 끄기(2315)
·
PS
문제 이 문제를 풀기 위해서는 가장 먼저 다음과 같은 관찰을 해야된다 :가로등을 위치 순서대로 나타내면 가로등의 상태는 항상 켜짐, 켜짐, ... , 켜짐, 꺼짐, ... , 꺼짐, 켜짐, ... , 켜짐 형태이다. 그 다음으로 해볼수 있는 시도는 dp[i][j]를 i ~ j 번 가로등들에 대한 문제의 답으로 정의하고 점화식을 만드는 것이다. 하지만 이렇게 하면 점화식이 잘 만들어지지 않는다. 그 다음으로 시도해볼수 있는 것은 dp[i][j]를 1 ~ i, j ~ N 번 가로등을에 대한 문제의 답으로 정의하는 것이다. 실제로 이렇게 정의하면 점화식을 어렵지 않게 만들 수 있다. (다만 디테일한 부분이 구현을 어렵게 한다.) 끝
백준 - 환상의 듀엣(11570)
·
PS
문제 먼저 이 문제를 다음과 같은 관점으로 보자 :문제에서 주어진 수열에서 몇개의 원소들을 선택해서 만들어진 부분수열 ak와 선택하지 않은 원소들을 통해 만들어지는 부분수열 bk에 대해 (|a1a2|+|a2a3|+)+(|b1b2|+|b2b3|+) 의 최솟값을 구한다. 그리고 다음과 같이 점화식을 정의해보자.dp[i][j] : A1:i에 대해 i번째 원소와 임의의 원소를 선택해 수열 ak를 만들고 나머지로 수열 bk를 만들때 (|a1a2|+|a2a3|+)+(|b1b2|+|b2b3|+)+|Ajblast| 의 최솟값 이 dp를 이용하면 다음과 같이 전체 문제에 대한 ..
Backpropagation Vectorization
·
인공지능
BackgroundWRD2×D1, XRD1×N 에 대해 bias가 생략된 linear layer의 출력값 Z=WX,ZRD2×N가 있다고 하자.또한 L:RD2×NR은 최적화 하려는 object function이라고 하자. Chain Rule 에 따라 gradient를 다음과 같이 구할수 있다.LW=LZZW하만 ..
Cross Entropy Derivation
·
인공지능
Binary Cross Entropyy를 ground truth값, ˆy를 estimation값, p=P(y=1), ˆpθp를 parameterized한 함수라고 하자.그다음 y=0일때와 y=1일때 각각의 likelihood 함수를 구해보자. 1) y=0일때는 y=0인 샘플들만 있을 것이고 likelihood 함수는 다음과 같다.Lθ=1ˆpθ2) y=1일때 Lθ는 다음과 같다.Lθ=ˆpθ LθLθ를 합치고 log-likelihood를 구하면 다음과 같다.$$L_\theta =..
Lowest Common Ancestor (LCA) 예제 코드
·
PS
#include #include using namespace std; int n, par[14][10001] = {{0}}, depth_arr[10001] = {0}; void bootstrap(void) { for (int i = 1; i = depth(v)) u = par[i][u]; } if (u == v) return u; for (int i = 13; i >= 0; i--) { if (par[i][u] != par[i][v]) { u = par[i][u]; v = par[i][v]; } } return par[0][u]; } int main(void) { scanf("%d", &n..
Lazy Propagation Segment Tree
·
PS
wx+b 연산을 지원하는 lazy 세그 예제 #include #include using namespace std; #define TREE_WIDTH (1
zanzun