ツバサの備忘録

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

ABC153 E - Crested Ibis vs Monster

問題
提出コード(1)
提出コード(2)

解法

dp[i][j] = i番目までの魔法を撃ち終えて、jだけダメージを与えたときに消費する魔力の最小値
とすると、

  • j \geqq A_{i}のとき
    dp[i +1][j] = min(dp[i][j],dp[i + 1][j - A_{i}] + B_{i})

  • j \lt A_{i}のとき
    dp[i + 1][j] = dp[i][j]

となります。
初期値はdp[0][0] = 0、答えは、min(dp[N][j]) (j \geqq H)です。
見るべきjの範囲は、H + max(A_{i})までなので、最大でも2 \times 10^{4}程度になり、このDPによる計算が間に合います。
これが提出コード(2)です。

dp[i][j] = i番目までの魔法を撃ち終えて、j以上ダメージを与えたときに消費する魔力の最小値
とすると、
dp[i + 1][j] = min(dp[i][j],dp[i + 1][max(0,j-A_{i})] + B_{i})

となります。初期値は上と同様、答えはdp[N][H]です。
これが提出コード(1)になります。