ABC 153-E
問題見てしばらくしてdpというのは分かった。しかしコードを書き上げてもなかなかバグが取れない。
for(int i=h;i>=0;i--){
for(int j=0;j<n;j++){
}
}
という二重ループを回し、
dp[i][j]:現在モンスターの体力がiで、魔法jを使おうとしてるときに、今までに消費した魔力の合計の最小値
と考えたが、遷移の際にdpテーブルに魔力の情報は必要ない(むしろバグる)と分かったので、以下のように書き換えた。
dp[i]:現在のモンスターの体力がiのときに今まで消費した魔力の合計の最小値
ただしモンスターの体力がその値を取りうるかどうかを確認しなければならないので注意が必要。
今までは、もう少しで解けそうだったり凡ミスでAC逃したりパフォは出たけど早解きだったりショートカット知らなかったりと、思わしくない内容ばっかりだったけど今回は自分の中で総合的に見て1番よかったんじゃないかな
— ysystem (@ysystem7) 2020年1月26日