首页 > 其他分享 >木材加工

木材加工

时间:2022-08-22 19:55:27浏览次数:51  
标签:返回 return 加工 木材 mid long 就要 ans

我们依次要判断 a 中的每一个数并计算出能切出多少个 mid ,还要用一个变量 ans 储存他们,如果 ans 分的分数比 k 多或者正好等于,返回真。如果是小于 k ,返回假。

当 f 返回的是真的时候,我们就要试试还能不能把 mid 调大一点,就要l = mid;

如果返回的是假,我们就加的太大了,就要把 midmid 调小一点,就要r = mid;

一直到结束,输出 l 就可以了。

#include<bits/stdc++.h>
using namespace std;
long long n,k,i;
long long a[1000005];
bool f(long long x) {
long long ans=0;
for (i=1;i<=n;i++) {
ans+=a[i]/x;
}
return ans>=k;
}
int main() {
cin>>n>>k;
for(i=1;i<=n;i++) cin>>a[i];
long long l=0, r=100000001;
long long mid;
while(l+1<r) {
mid=(l+r)/2;
if(f(mid))l=mid;
else r=mid;
}
cout<<l<<endl;
return 0;
}

标签:返回,return,加工,木材,mid,long,就要,ans
From: https://www.cnblogs.com/wangjunlong9948/p/16614050.html

相关文章

  • P2440 木材加工
    P2440木材加工分析:根据题意,先对所有的木材长度进行排序方便二分查找,写一个查找函数,每个木材都除以当前的切割长度(mid),看能切出几段,如果切出的段数大于要求的段数,证明查找......