SRM+413

=2013 / 02 / 24= =ArithmeticProgression=

Prob
어떤 등차수열이 존재하고, 이 등차수열을 floor 취한 배열이 주어질 때 등차수열의 최소 등차 구하기.

Sol
최소 등차는 반드시 (ai - a0) / i (i >= 1) 중 하나에 걸쳐야만 한다. 걸치지 않으면 더 줄일 수 있으니.. 후보중 valid하면서 가장 작은 등차 선택.

=InfiniteSequence2=

Prob
G(i) = 1, i <= 0 G(i) = G([i / p] - x) + G([i / q] - y), 0 < i <= 10 ^ 13, (p, q) >= 2

Sol
한 몇백만까지는 DP로 구해놓고 그 위는 그냥 돌리면...

=TreeCount=

Prob
임의의 노드에 색칠하면 해당 노드에 인접한 노드는 최대 K개까지 색칠할 수 있다. for(k = 0; k < N; k++) 에 대해서 색칠 가짓수 구하기.

Sol
D(currentNode, childIndex, leftToPick, currentColored) 를 통해서 O(n * n * 2)로 해결 가능. n이 2개인 이유는 사실 자식이 정해지면 부모는 정해진거라서... 각 노드에 대해서 자식에 순서매겨서 이 자식에서의 가지수 * 앞으로 남은 자식들 가지수 같은 방향으로 해결하면 된다.