求助!!后4个点re了,下了下数据自己测都没有问题
查看原帖
求助!!后4个点re了,下了下数据自己测都没有问题
490978
小超手123楼主2022/6/8 20:22
#include<bits/stdc++.h>
using namespace std;
int n,m,ans;//n本书,m个人 
int a[510];
int dp[510][510],sum[510];
int beg[510];
int jia(int l,int r){
	return sum[r]-sum[l-1];
}
void shuchu(int x){
	if(x<=0)return;
	shuchu(beg[x]-1);
	if(beg[x]==0)cout<<1<<" "<<x<<endl;
	else cout<<beg[x]<<" "<<x<<endl;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	    cin>>a[i];
    for(int i=1;i<=n;i++)
	    sum[i]=sum[i-1]+a[i];
	for(int i=0;i<=n;i++){
		for(int j=0;j<=m;j++){
			dp[i][j]=1e9;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			for(int k=1;k<=n-j+1;k++){ //第j个人要抄多少本 
				dp[i][j]=min(dp[i][j],max(dp[i-k][j-1],jia(i-k+1,i)));
			}
		}
	}
	ans=dp[n][m];
	int now=0;
	int end=n;
	for(int i=n;i>=1;i--){
		now+=a[i];
		if(now>ans){
			now=a[i];
			beg[end]=i+1;
			end=i;
		}
	}
	shuchu(n);
	return 0;
}


2022/6/8 20:22
加载中...