马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
标题链接:1227. 分巧克力 - AcWing题库
思绪:二分答案,每次二分边长
代码:
- #include<bits/stdc++.h>
- using namespace std;
- typedef pair<int,int> PII;
- #define N 100010
- int n,k;
- PII a[N];
- bool check(int mid){
- int cnt=0;
- for(int i=1;i<=n;i++){
- if(a[i].first<mid||a[i].second<mid)continue;
- cnt+=(a[i].first/mid)*(a[i].second/mid);
- }
- if(cnt>=k)return true;
- return false;
- }
- int main(){
-
- cin>>n>>k;
- for(int i=1;i<=n;i++)cin>>a[i].first>>a[i].second;
-
- int l=1,r=N;
- while(l<=r){
- int mid=l+r>>1;
- if(check(mid))l=mid+1;
- else r=mid-1;
- }
-
- cout<<r<<endl;
-
-
- return 0;
- }
复制代码
|