ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

Typical DP Contest A - コンテスト

問題
提出コード
DPまとめコンテストに向けて埋め+復習をしていこうかと思います。

解法

基本的なDPの1つではないでしょうか。

  • dp[i][j] = i問目までを解き終えた状態で、得点がjになるような方法があるかどうか

として、1がある、0がない、とします。初期状態はdp[0][0] = 1です。すると、

  • dp[i][j] = (dp[i-1][j]  |  dp[i-1][j-p_i])
    となります。ここで、|論理和を表します。あとは、これをすべて計算したのち、dp[n][j] = 1の個数を合計すれば答えとなります。