社区讨论

逆天锣鼓

P2440木材加工参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lrskh14x
此快照首次捕获于
2024/01/25 10:00
2 年前
此快照最后确认于
2024/01/25 11:44
2 年前
查看原帖
我代码本地跑对了,锣鼓错了
代码:
CPP
#include<bits/stdc++.h> 
using namespace std;
long long sum,n,a[100010],k,cnt;
bool check(int x){
	sum=0;
	if(x==0)return 1;
	for(int i=n-1;i>=0;i--){
		cnt=a[i]/x;
		sum+=cnt; 
	}
	if(sum>=k)
		return 1;
	return 0;
}
int bs(){
	int l=1,r=a[n-1],ans;
	while(l<=r){
		int mid=(l+r)>>1;
		if(check(mid))
			ans=mid,l=mid+1;
		else
			r=mid-1;
	}
	return ans;
}
int main(){
	cin>>n>>k;
	for(int i=0;i<n;i++) 
		cin>>a[i];
	sort(a,a+n);
	cout<<bs();
}
样例:
CPP
16 100000000
179
168
927
4670
5891
7287
10854
20976
48625
17908
111989
1097897
9999998
87
1
7
我本地输出的是0(正确)锣鼓反馈为4?????

回复

4 条回复,欢迎继续交流。

正在加载回复...