博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分搜索 Codeforces Round #218 (Div. 2) C. Hamburgers
阅读量:5170 次
发布时间:2019-06-13

本文共 1254 字,大约阅读时间需要 4 分钟。

 

1 /* 2     题意:一个汉堡制作由字符串得出,自己有一些原材料,还有钱可以去商店购买原材料,问最多能做几个汉堡 3     二分:二分汉堡个数,判断此时所花费的钱是否在规定以内 4 */ 5 #include 
6 #include
7 #include
8 using namespace std; 9 10 typedef long long ll;11 const int MAXN = 1e2 + 10;12 const int INF = 0x3f3f3f3f;13 char ham[MAXN];14 ll nb, ns, nc;15 ll pb, ps, pc;16 ll b, s, c;17 ll m;18 19 bool check(ll x) {20 ll cost = 0;21 if (b * x > nb) cost += (b * x - nb) * pb;22 if (s * x > ns) cost += (s * x - ns) * ps;23 if (c * x > nc) cost += (c * x - nc) * pc;24 return cost <= m;25 }26 27 int main(void) { //Codeforces Round #218 (Div. 2) C. Hamburgers28 scanf ("%s", &ham);29 scanf ("%I64d%I64d%I64d", &nb, &ns, &nc);30 scanf ("%I64d%I64d%I64d", &pb, &ps, &pc);31 scanf ("%I64d", &m);32 b = s = c = 0;33 for (int i=0; ham[i]; ++i) {34 if (ham[i] == 'B') b++;35 else if (ham[i] == 'S') s++;36 else c++;37 }38 ll l = 0, r = 1e13;39 while (l + 1 < r) {40 ll mid = (l + r) >> 1;41 if (check (mid)) l = mid;42 else r = mid;43 }44 printf ("%I64d\n", l);45 46 return 0;47 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4676325.html

你可能感兴趣的文章
开源镜像网站
查看>>
BZOJ2728 HNOI2012与非(并查集+数位dp)
查看>>
内存分配
查看>>
js 查找页面重复元素
查看>>
List用法与介绍
查看>>
实验四
查看>>
<input type="image">图片按钮具有提交功能
查看>>
安卓扁平化之路专题(二)ActionBar的Overlay模式
查看>>
层级 z-index 透明opacity
查看>>
2016.2.23_导入maven工程遇见的问题【问题】
查看>>
洛谷P3649 [APIO2014]回文串(回文自动机)
查看>>
洛谷P4012 深海机器人问题(费用流)
查看>>
LOJ#162. 快速幂 2(分块)
查看>>
LOJ#6360. 复燃「恋之埋火」(最小圆覆盖+高斯消元)
查看>>
高精度运算模板
查看>>
Merge Two Sorted Lists
查看>>
jsonp和jsonpcallback的使用
查看>>
jquery 只有二级下拉菜单
查看>>
maven 基本常识以及命令
查看>>
网格化
查看>>