找到错误了
by blcup @ 2018-10-08 10:29:06
求问哪里
by ysj1173886760 @ 2018-10-15 16:10:07
好吧我也明白了
by ysj1173886760 @ 2018-10-15 16:14:42
我也WA了第七个点,为什么?
```cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 106;
int n, m, a[N][N], f[N][N], d[N][N], ans[N];
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
scanf("%d", &a[i][j]);
memset(d, 0, sizeof(d));
f[1][1] = a[1][1];
for (int i = 2; i <= n; i++) {
f[i][i] = a[i][i] + f[i-1][i-1];
d[i][i] = i - 1;
}
for (int i = 1; i <= m - n + 1; i++)
f[1][i] = a[1][i];
for (int i = 2; i <= n; i++) {
int k = 0xcfcfcfcf, t;
for (int j = i + 1; j <= m - n + i; j++) {
if (k < f[i-1][j-1]) {
k = f[i-1][j-1];
t = j - 1;
}
f[i][j] = k + a[i][j];
d[i][j] = t;
}
}
int k = 0xcfcfcfcf, t;
for (int i = n; i <= m; i++)
if (k < f[n][i]) {
k = f[n][i];
t = i;
}
cout << k << endl;
int w = n;
while (t) {
ans[w] = t;
t = d[w--][t];
}
for (int i = 1; i < n; i++)
cout << ans[i] << " ";
cout << ans[n] << endl;
return 0;
}
```
by xht @ 2018-10-24 16:17:01