【codeforce】 Hamburgers
来源:互联网 发布:js bytearray 遍历 编辑:程序博客网 时间:2024/06/05 02:40
和上题类似
代码:
#include<cstdio>#include<cstring>#include<algorithm>#define MAXN 10000000000000using namespace std;char str[110];long long nb,ns,nc,pb,ps,pc;long long r;long long b=0,s=0,c=0;bool judge(long long mid)//二分可以做成的面包的个数,判断此时总钱数是否够用,即r>=0? {long long NB=mid*b,NS=mid*s,NC=mid*c; long long temp=r;//因为每次判断 r 的值还是原值,所以每次用其他变量代替 if(NB>nb)temp-=pb*(NB-nb);if(NS>ns)temp-=ps*(NS-ns);if(NC>nc)temp-=pc*(NC-nc);if(temp>=0)return 1;return 0; }int main(){scanf("%s",str);scanf("%lld%lld%lld",&nb,&ns,&nc);scanf("%lld%lld%lld",&pb,&ps,&pc);scanf("%lld",&r);int l=strlen(str);for(int i=0;i<l;i++)//一个汉堡每种原料的个数 {if(str[i]=='B')b++;if(str[i]=='S')s++;if(str[i]=='C')c++;}long long left=0,right=MAXN,mid;//r 的范围0~10^12, long long ans;//或ans=0;while(left<=right){mid=(left+right)/2;if(judge(mid))//总钱数够用,左区间右移,记录面包个数 {left=mid+1;ans=mid;}else//钱不够,右区间压缩 {right=mid-1;} }printf("%lld\n",ans);return 0; }
0 0
- 【codeforce】 Hamburgers
- Hamburgers
- Hamburgers
- E - Hamburgers
- C. Hamburgers
- C. Hamburgers
- [Codeforces]Hamburgers
- codeforce
- codeforce
- Codeforce
- Codeforce
- Codeforce
- Codeforce
- Codeforce
- Codeforce
- Codeforce
- Codeforce
- Codeforce
- POJ2505之找规律
- 小白写"半同步半异步"服务器模型踩坑实录(2)
- GitHub 上排名前 100 的 Android 开源库介绍
- Python学习4--模块、包
- Codeforces 670D2:Magic Powder - 2(二分)
- 【codeforce】 Hamburgers
- POJ1067之威佐夫博弈
- Java对象创建与内存分布
- LruCache
- 码神之旅第三天
- 求每门课的第一名的简单sql语句
- POJ1704之Nim博弈
- POJ 2823 Sliding Windows(单调队列)
- c/c++ cin>> cout<< scanf() printf() 返回值