30分求调(非luogu题目)
查看原帖
30分求调(非luogu题目)
739307
All_Failed_OI_Cici楼主2024/6/25 21:48

题目如下: 代码:

#include<bits/stdc++.h>
using namespace std;
const int N=5e5+5;
int cat1[N],cat2[N];
int l=1,r;
int day,a,b,n,ma,cnt=0;
bool check(int k){
	cnt=0;
	for(int i=1;i<=n;i++){
		cat2[i]=cat1[i];
		int x=ceil((1.0*cat2[i]-a*day)/b);
		ma=max(0,x);
		cnt+=ma;
	}
	if(cnt<=day) return true;
	else return false;
}
int main(){
	cin>>n>>a>>b;
	r=ceil(1.0*n/a);
	for(int i=1;i<=n;i++){
		cin>>cat1[i];
	}
	while(l<r){
		day=(l+r)/2;
		if(check(day)) r=day;
		else l=day+1;
	}
	cout<<day;
	return 0;
} 

谢谢巨佬们

2024/6/25 21:48
加载中...