输出也能改变结果????
  • 板块灌水区
  • 楼主allqpsi
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/8/1 11:16
  • 上次更新2023/11/3 06:36:45
查看原帖
输出也能改变结果????
380406
allqpsi楼主2023/8/1 11:16
#include<bits/stdc++.h>
using namespace std;
int n,k,vi[505],l,r,si[505],ti[505],ll;
bool check(int x){
	int summ,a=0;
	for(int i=1;i<=n;i++){
		if(summ+vi[i]<=x){
			summ+=vi[i];
		}
		else{
			summ=vi[i];
			a++;
		}
	}
	if(summ>0){
		a++;
	}
	return a<=k;
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>vi[i];
	}
	l=1;r=1e9;
	while(l<r){
		int mid=(l+r)/2;
		if(check(mid)){
			r=mid;
		}
		else{
			l=mid+1;
		}
		cout<<1<<' ';
	}
	cout<<endl;
	cout<<l<<endl;
	int summ=0,a=n;
	for(int i=n;i>=1;i--){
		if(summ+vi[i]<=l){
			summ+=vi[i];
		}
		else{
			summ=vi[i];
			ll++;
			si[ll]=i+1;
			ti[ll]=a;
			a=i;
		}
	}
	if(summ>0){
		ll++;
		si[ll]=1;
		ti[ll]=a;
	}
	for(int i=ll;i>=1;i--){
		cout<<si[i]<<' '<<ti[i]<<endl;
	}
} 

假如有循环中的输出1,l为17,没有却不同了。

P1281

样例:

9 3

1 2 3 4 5 6 7 8 9

2023/8/1 11:16
加载中...