diff --git a/00lanqiao chap/test100-1-3.cpp b/00lanqiao chap/test100-1-3.cpp new file mode 100644 index 0000000..ccda2b9 --- /dev/null +++ b/00lanqiao chap/test100-1-3.cpp @@ -0,0 +1,29 @@ +// lanqiao 2223 背包与魔法 +#include +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 +*/ \ No newline at end of file