zoukankan      html  css  js  c++  java
  • Codeforces 371C Hamburgers(二分基础题)

    点击这里进入题目


    题目大意:给你一个字符串表示一个汉堡的结构,一个汉堡由BSC三个字母组成,然后给你你有的BSC原料的数目,和如果要购买BSC的价格。告诉你你所拥有的金钱,问最多能做出几个汉堡。


    思路:很明显这符合单调性,可以直接二分出能做几个汉堡,check也很好写,基本是个二分模板题。


    AC程序:

    //库省略
    using namespace std;
    int b,s,c;
    ll nb,ns,nc;
    int cb,cs,cc;
    string ss;
    ll mon;
    bool check(ll num)
    {
        ll bb=(num*b-nb)*cb,ss=(num*s-ns)*cs,ccc=(num*c-nc)*cc;
        if(bb<0)
        bb=0;
        if(ss<0)
        ss=0;
        if(ccc<0)
        ccc=0;
        if (bb+ss+ccc<=mon)
        return 1;
        return 0;
    }
    int main()
    {
        cin>>ss;
        for(int i=0;i<ss.size();i++)
        {
            if(ss[i]=='B')
            b++;
            else
            if(ss[i]=='S')
            s++;
            else
            c++;
        }
        cin>>nb>>ns>>nc;
        cin>>cb>>cs>>cc;
        cin>>mon;
        ll l=0,r=1e14,mid;
        while(l<r)
        {
            mid=(l+r)/2;
            if(check(mid))
            l=mid+1;
            else
            r=mid;
        }
        cout<<l-1<<endl;
        return 0;
    }
  • 相关阅读:
    实验四
    密码破解技术
    222
    111
    6
    5
    4
    第三次
    第二次
    第一次
  • 原文地址:https://www.cnblogs.com/NightRaven/p/9333241.html
Copyright © 2011-2022 走看看