社区讨论
萌新求助!!!
P3628[APIO2010] 特别行动队参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi7cj6dh
- 此快照首次捕获于
- 2025/11/20 19:26 4 个月前
- 此快照最后确认于
- 2025/11/20 19:26 4 个月前
谁能告诉我这题我的暴力哪里写伪了。我习惯先写个暴力DP再去优化,可是暴力WA on test 4我有点怕怕,不知道哪里写错了,可以帮菜鸡看看么,不会花费大佬你们太多时间的QAQ
CPP#include <bits/stdc++.h>
#define int long long
#define db double
using namespace std;
int read() {
int x = 0, f = 1; char ch = getchar();
while (! isdigit(ch)) {if (ch == '-') f = -1; ch = getchar();}
while ( isdigit(ch)) x = x * 10ll + ch - 48, ch = getchar();
return x * f;
}
const int N = 2e6 + 5;
int n, sum[N], a, b, c, dp[N];
int Solve(int x) {
return a*x*x + b*x + c;
}
signed main(void) {
n = read(); a = read(); b = read(); c = read(); sum[0] = 0;
for (int i = 1; i <= n; ++ i) sum[i] = sum[i - 1] + read();
for (int i = 1; i <= n; ++ i) {
for (int j = 0; j < i; ++ j) {
dp[i] = max(dp[i], dp[j] + Solve(sum[i] - sum[j]));
}
}
printf("%lld\n", dp[n]);
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...