开 O2 提交记录
不开 O2 提交记录
代码:
#include <bits/stdc++.h>
#define debug puts("Y")
#define inf 0x3f3f3f3f
using namespace std;
const int N = 2500;
int n, m, M[N], w[N], v[N], dp[N * 100];
int main() {
cin >> n >> m;
v[0] = m;
for (int i = 1; i <= n; i ++) {
cin >> M[i];
v[i] = v[i - 1] + M[i], w[i] = i;
}
memset(dp, 0x3f, sizeof dp);
dp[0] = 0;
for (int i = 1; i <= n; i ++) {
for (int j = w[i]; j <= n; j ++) {
dp[j] = min(dp[j], dp[j - w[i]] + v[i] + m);
}
}
cout << dp[n] - m;
return 0;
}