Accepted Necklace HDU - 2660
WA
wa了两发又双叒叕是因为没读清楚题我裂开
AC代码
好家伙一手最low的dp竟然过了,我还一直不敢交hhhh
#include <bits/stdc++.h>
using namespace std;
int const N = 2000;
int dp[30][N][30];
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
int T;
cin >> T;
while (T--) {
int n, k;
cin >> n >> k;
vector<int> w(n + 1), p(n + 1);
for (int i = 1; i <= n; i++) cin >> p[i] >> w[i];
int W;
cin >> W;
memset(dp, 0, sizeof(dp));
int ans = 0;
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= W; j++) {
for (int t = 1; t <= k; t++) {
if (j + w[i] <= W)
dp[i][j][t] = max(dp[i - 1][j + w[i]][t - 1] + p[i], dp[i - 1][j][t]);
else dp[i][j][t] = dp[i - 1][j][t];
ans = max(ans, dp[i][j][t]);
}
}
}
cout << ans << endl;
}
return 0;
}