码迷,mamicode.com
首页 > 其他好文 > 详细

EZOJ #374学习

时间:2019-09-14 22:18:53      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:代码   space   scanf   sig   i++   else   c++   二分   strong   

分析

二分天数

暴力判断即可

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,a[100100],b[100100],c[100100],d[100100];
inline bool ck(int mid){
    int x=mid,i,j,k;
    for(i=1;i<=n;i++)d[i]=c[i];
    for(i=1;i<=n;i++)d[i]=max(0ll,d[i]-x*b[i]);
    for(i=1;i<=n;i++)
      if(d[i]){
          x-=((d[i]-1)/a[i]+1);
          if(x<0)break;
      }
    if(x>=0)return 1;
    return 0;
}
signed main(){
    int i,j,k;
    scanf("%d",&n);
    for(i=1;i<=n;i++)scanf("%d%d%d",&c[i],&b[i],&a[i]),m=max(m,(c[i]-1)/b[i]+1);
    int le=0,ri=m;
    while(ri-le>1){
      int mid=(le+ri)>>1;
      if(ck(mid))ri=mid;
        else le=mid;
    }
    printf("%d\n",ri);
    return 0;
}

EZOJ #374学习

标签:代码   space   scanf   sig   i++   else   c++   二分   strong   

原文地址:https://www.cnblogs.com/yzxverygood/p/11520430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!