mini notes

競技プログラミングの解法メモを残していきます。

ARC010 C - 積み上げパズル

問題:C - 積み上げパズル

解答:Submission #13676621 - AtCoder Regular Contest 010

解法:dp[i][j][k] : i番目のブロックまで見て、直前に使った色がj色で、今までに使用した色の集合(ビットで表現)がkであるときの得点の最大値 とし、dpする。全色ボーナスは最後のchmax(ans, *)の時に加味する。

計算量は n * m * 2m ≦ 5000 * 10 * 1024 < 108 なので間に合う。