lanqiao 2223 背包与魔法
This commit is contained in:
@@ -12,10 +12,11 @@ signed main()
|
||||
int w, v; cin >> w >> v;
|
||||
for(int j = m; j >= 0; j--){
|
||||
if(j >= w){
|
||||
dp[j][0] = max(dp[j][0], dp[j-w][0] + v);
|
||||
dp[j][1] = max(dp[j][1], dp[j-w][1] + v);
|
||||
dp[j][0] = max(dp[j][0], dp[j-w][0] + v); // 未使用魔法
|
||||
dp[j][1] = max(dp[j][1], dp[j-w][1] + v); // 可以使用魔法, 但不是本次
|
||||
}
|
||||
if(j >= (w+k)) dp[j][1] = max(dp[j][1], dp[j-w-k][0] + 2*v);
|
||||
// 使用魔法, 但必须从未使用魔法状态转移, 否则会导致多次使用魔法
|
||||
if(j >= (w+k)) dp[j][1] = max(dp[j][1], dp[j-w-k][0] + 2*v);
|
||||
}
|
||||
}
|
||||
cout << max(dp[m][1], dp[m][0]) << '\n';
|
||||
|
||||
Reference in New Issue
Block a user