48求调
  • 板块P2440 木材加工
  • 楼主wuzhexu
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/25 21:57
  • 上次更新2024/11/26 11:49:41
查看原帖
48求调
1174984
wuzhexu楼主2024/11/25 21:57

感谢大佬们的纠正……!

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k,s=INT_MAX;
int dis[100000010];
int ans=0;
int l,r;
bool check(int x){
	int cnt=0;
	for(int i=1;i<=n;i++){
		cnt+=dis[i]/x;
	}
	if(cnt>k) return 1;
	return 0;
}
int find(int l,int r){
	if(l>r) return ans;
	int mid=l+(r-l)/2;
	if(check(mid)){
		ans=mid;
		return find(mid+1,r);
	}
	else{
		return find(l,mid-1);
	}
}
signed main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>dis[i];
		s=min(s,dis[i]);
	}
	int l=1;
	int r=s;
	cout<<find(l,r)<<endl;
	return 0;
	
}
2024/11/25 21:57
加载中...