第十六届蓝桥杯病愈训练--8

[复制链接]
发表于 2025-10-8 00:07:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
标题链接:1227. 分巧克力 - AcWing题库

思绪:二分答案,每次二分边长
代码:
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef pair<int,int> PII;
  4. #define N 100010
  5. int n,k;
  6. PII a[N];
  7. bool check(int mid){
  8.     int cnt=0;
  9.     for(int i=1;i<=n;i++){
  10.         if(a[i].first<mid||a[i].second<mid)continue;
  11.         cnt+=(a[i].first/mid)*(a[i].second/mid);
  12.     }
  13.     if(cnt>=k)return true;
  14.     return false;
  15. }
  16. int main(){
  17.    
  18.     cin>>n>>k;
  19.     for(int i=1;i<=n;i++)cin>>a[i].first>>a[i].second;
  20.    
  21.     int l=1,r=N;
  22.     while(l<=r){
  23.         int mid=l+r>>1;
  24.         if(check(mid))l=mid+1;
  25.         else r=mid-1;
  26.     }
  27.    
  28.     cout<<r<<endl;
  29.    
  30.    
  31.     return 0;
  32. }
复制代码

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表