1 条题解
-
1
乍一看这是斜率优化模板题,然而……
注意到总大小大于 时再合并一定不优,因此直接 也能 AC。
#include <bits/stdc++.h> using namespace std; long long dp[100012], w[100012]; int main() { int n, m; while (cin >> n >> m) { for (int i = 0; i <= n; i++) dp[i] = 1e18; dp[0] = 0; for (int i = 1; i <= n; i++) { cin >> w[i]; w[i] += w[i - 1]; } for (int i = 1; i <= n; i++) for (int j = i - 1; j >= 0 && w[i] - w[j] <= 1000; j--) dp[i] = min(dp[i], dp[j] + m + (w[i] - w[j]) * (w[i] - w[j])); cout << dp[n] << endl; } return 0; }
信息
- ID
- 133
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 8
- 已通过
- 2
- 上传者