字典序不对QWQ
输入:
10 4
1 1 1 1 1 1 1 1 1 1
答案:
1 1
2 4
5 7
8 10
我的:
1 2
3 4
5 7
8 10
代码:
#include<bits/stdc++.h>
#define N 501
using namespace std;
int m, K, sum[N], p[N][N][N], f[N][N];
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
memset(f, 0x3f, sizeof f);
cin >> m >> K;
for (int i=1; i<=m; ++i) cin >> sum[i], sum[i]+=sum[i-1];
for (int i=1; i<=m; ++i) f[i][1]=sum[i];
for (int i=1; i<=m; ++i)
for (int j=1; j<=K; ++j)
for (int k=1; k<=i; ++k) {
p[i][j][j]=i;
if (max(f[k][j-1], sum[i]-sum[k])<f[i][j]) {
f[i][j]=max(f[k][j-1], sum[i]-sum[k]);
for (int u=1; u<=K; ++u) p[i][j][u]=p[k][j-1][u];
p[i][j][j]=i;
}
}
cout << 1 << ' ';
for (int i=1; i<K; ++i)
cout << p[m][K][i] << '\n' << p[m][K][i]+1 << ' ';
cout << m << '\n';
return 0;
}