有人能教下我A257.打保龄球吗?
2025-01-14 13:37:19
发布于:湖北
这题我改了三天了还没对
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, k, w;
cin >> n >> k >> w;
vector<int> a(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
vector<int> prefixSum(n + 1, 0);
for (int i = 1; i <= n; ++i) {
prefixSum[i] = prefixSum[i - 1] + a[i - 1];
}
vector<vector<int>> dp(n + 1, vector<int>(k + 1, 0));
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= k; ++j) {
dp[i][j] = dp[i - 1][j];
if (i >= w) {
dp[i][j] = max(dp[i][j], dp[i - w][j - 1] + prefixSum[i] - prefixSum[i - w]);
} else {
dp[i][j] = max(dp[i][j], prefixSum[i]);
}
}
}
cout << dp[n][k] << endl;
return 0;
}
我提交之后他
WA
0ms/3.29m
#2
AC
0ms/3.43m
#3
AC
1ms/3.41m
#4
AC
0ms/3.35m
#5
AC
1ms/4.29m
#6
AC
0ms/3.30m
#7
AC
全部评论 1
唉
2025-01-14 来自 湖北
1
有帮助,赞一个