Look in my eys,tell me why!
查看原帖
Look in my eys,tell me why!
1370100
lei_dian_ying楼主2025/7/25 17:52

请各位DALAO们帮我看看为什么我的代码会WA四个测试点?

下面是Furina的代码:

#include <bits/stdc++.h>
using namespace std;
#define int unsigned long long
int n,d;
int h[50005];
int l,r;
bool ch(int x){
	int sum=0,cnt=1;
	for(int i=1;i<=d;i++){
		if(sum<x){
			if(cnt>n){
				return 0;
			}
			else{
				while(sum<x){
					if(cnt>n){
						return 0;
					}
					sum+=h[cnt++];
				}
			}
		}
		sum/=2;
	}
	return 1;
}
signed main(){
	cin>>n>>d;
	for(int i=1;i<=n;i++){
		cin>>h[i];
	}
	l=1,r=0x3f3f3f3f;
	while(l<=r){
		int mid=(l+r)/2;
		if(ch(mid)){
			l=mid+1;
		}
		else{
			r=mid-1;
		}
	}
	cout<<r<<endl;
	int sum=0,cnt=1;
	for(int i=1;i<=d;i++){
		if(sum<r){
			if(cnt>n){
				return 0;
			}
			else{
				while(sum<r){
					if(cnt>n){
						return 0;
					}
					sum+=h[cnt++];
					cout<<i<<endl;
				}
			}
		}
		sum/=2;
	}
}
2025/7/25 17:52
加载中...