lanqiao 2223 背包与魔法
This commit is contained in:
29
00lanqiao chap/test100-1-3.cpp
Normal file
29
00lanqiao chap/test100-1-3.cpp
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
// lanqiao 2223 背包与魔法
|
||||||
|
#include <bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
#define int long long
|
||||||
|
const int N = 1e4 + 10;
|
||||||
|
int dp[N][2];
|
||||||
|
signed main()
|
||||||
|
{
|
||||||
|
// 请在此输入您的代码
|
||||||
|
int n, m, k; cin >> n >> m >> k;
|
||||||
|
for(int i = 1; i <= n; i++){
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
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';
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* test samples -> 26
|
||||||
|
3 10 3
|
||||||
|
5 10
|
||||||
|
4 9
|
||||||
|
3 8
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user