zoukankan      html  css  js  c++  java
  • 【CodeForces】[371C]Hamburgers

    这里写图片描述

    【CodeForces】[670D2]Magic Powder - 2类似
    同样是根据判断能不能做mid个
    来进行二分查找

    只不过这个每个汉堡所需的材料个数
    需要自己用字符串来数

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    char s[120];
    __int64 cnt[3];
    __int64 n[3];
    __int64 p[3];
    __int64 r;
    bool judge(__int64 x) {
        __int64 t=r;
        for(int i=0; i<3; i++) {
            if(t/p[i]+n[i]<x*cnt[i])
                return false;
            else
                t-=max((__int64)0,(x*cnt[i]-n[i])*p[i]);
        }
        return true;
    }
    int main() {
        while(scanf("%s",s)!=EOF) {
            cnt[0]=cnt[1]=cnt[2]=0;
            int ls=strlen(s);
            for(int i=0; i<ls; i++) {
                if(s[i]=='B')
                    cnt[0]++;
                else if(s[i]=='S')
                    cnt[1]++;
                else
                    cnt[2]++;
            }
            for(int i=0; i<3; i++)
                scanf("%I64d",&n[i]);
            for(int i=0; i<3; i++)
                scanf("%I64d",&p[i]);
            scanf("%I64d",&r);
            __int64 l=0,r=1e13,res;
            while(l<=r) {
                __int64 mid=(l+r)/2;
                if(judge(mid)) {
                    res=mid;
                    l=mid+1;
                } else
                    r=mid-1;
            }
            printf("%I64d
    ",res);
        }
        return 0;
    }
    

    题目地址:【CodeForces】[371C]Hamburgers

  • 相关阅读:
    2.19
    2.16sqlite
    2.14Android6
    2.12Android5
    2.11Android4
    2.09Android3
    2.08Android2
    2.06Android学习
    dpdk bond
    ContainerCreating
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569467.html
Copyright © 2011-2022 走看看