Problem Solving/Topcoder

SRM 679 Div.1

hongjun7 2016. 2. 22. 10:32
250 : 그리디하게 풀린다. 밑에서부터 올라오면서 누적하고 음수되면 버리면 됨.

900 : D(i, j) : i번 가방에서는 점수 k인 카드를 쓸 때에 다른 가방에서 점수 j인 카드를 써서 좋은 수가 되는 경우의 수라 정의하자.

D(i, j) = Sigma[Count(i, k) * (isGood(j+k)=='Y')]

그러면 i < j일 때에 ans(i, j) = Sigma[D(i, k) * Count(j, k)].