7个RE,求调。
  • 板块P1281 书的复制
  • 楼主YDCP
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/2/8 16:40
  • 上次更新2025/2/8 18:06:40
查看原帖
7个RE,求调。
1617889
YDCP楼主2025/2/8 16:40
#include<bits/stdc++.h>
using namespace std;
int x,y,i,j,m,n,k,t,l;
int a[5001],f[5001][5001],d[5001];
int print(int i,int j) {         
	int t,x;
	if (j==0) return 0;
	if (j==1) {                    
		cout<<1<<" "<<i<<endl;
		return 0;
	}
	t=i;
	x=a[i];
	while (x+a[t-1]<=f[k][m]) {
		x+=a[t-1];
		t--;
	}
	print(t-1,j-1);              
	cout<<t<<" "<<i<<endl;  
}

int main() {
	cin>>m>>k;
	for (i=0; i<=m; i++)
		for (j=0; j<=m; j++)
			f[i][j]=1e8;
	for (j=1; j<=m; j++) {
		cin>>a[j];
		d[j]=d[j-1]+a[j];
		f[1][j]=d[j];
	}
	for (i=2;i<=k;i++)
		for (j=1;j<=m;j++)
			for (l=1;l<=j-1;l++)
				if (max(f[i-1][l],d[j]-d[l])<f[i][j])
					f[i][j]=max(f[i-1][l],d[j]-d[l]);
	print(m,k);
	return 0;
}
2025/2/8 16:40
加载中...