汉堡
来源:互联网 发布:数据库原理及应用试题 编辑:程序博客网 时间:2024/05/01 17:52
贪心的方法做,现找出用原始材料能做的汉堡,在对多出来的材料进行贪心,把少的用钱买上,如果没钱了,就输出,如果有钱就没有多出来的了,可以直接买了
#include<cstdio>#include<iostream>#include<cstring>#define ll long longusing namespace std;char a[9999999]; ll t;int b,s,c,nb,ns,nc,qb,qs,qc;int main(){ cin>>a; for(int i=0;i<strlen(a);i++) { if(a[i]=='B') nb++; if(a[i]=='S') ns++; if(a[i]=='C') nc++; }//找一个汉堡里的材料 scanf("%d%d%d%d%d%d%I64d",&b,&s,&c,&qb,&qs,&qc,&t); ll ans=min(nb?(b/nb):12e+101,min((nc?(c/nc):12e+101),ns?(s/ns):12e+101));//找原材料能造的汉堡 b-=nb*ans; c-=nc*ans; s-=ns*ans; ll w=nb*qb+nc*qc+ns*qs; while((b&&nb)||(c&&nc)||(s&&ns)){ if(b<nb) { t-=(nb-b)*qb; b=0; } else b-=nb; if(c<nc) { t-=(nc-c)*qc; c=0; } else c-=nc; if(s<ns) { t-=(ns-s)*qs; s=0; } else s-=ns; if(t<0) break; ans++; }//把多的材料用掉 printf("%I64d",ans+t/w);//输出汉堡书}
对汉堡进行二分答案,如果花的钱多了就买少点,少了就买多点
#include<cstdio>#include<iostream>#include<cstring>#define ll long longusing namespace std;char a[9999999]; ll r,l,t;int b,s,c,nb,ns,nc,qb,qs,qc;bool check(ll x){ ll money=0; if(b<x*nb) money+=(x*nb-b)*qb; if(c<x*nc) money+=(x*nc-c)*qc; if(s<x*ns) money+=(x*ns-s)*qs; return money<=t;}int main(){ cin>>a; for(int i=0;i<strlen(a);i++) { if(a[i]=='B') nb++; if(a[i]=='S') ns++; if(a[i]=='C') nc++; } scanf("%d%d%d%d%d%d%I64d",&b,&s,&c,&qb,&qs,&qc,&t); r=1e12+101; while(l<=r){ ll mid=(l+r)>>1; if(check(mid)) l=mid+1; else r=mid-1; } printf("%I64d",r);}
阅读全文
1 0
- 汉堡
- 汉堡菜单
- 做汉堡
- 今天的汉堡
- 今天的汉堡
- 今天的汉堡
- 今天的汉堡
- 今天的汉堡
- 今天的汉堡
- 今天的汉堡
- 今天的汉堡
- 今天的汉堡
- 今天的汉堡
- uva557 - Burger(汉堡)
- bootstrap汉堡按钮
- 汉堡店的日常
- 你是“汉堡人才”吗?
- 你是“汉堡人才”吗?
- 在kotlin-MVP使用dagger2(v2.11+)
- iOS动画 CABaseAnimation总结
- 设计模式------代理模式
- DS.SIMULIA.SIMPACK
- maven项目打jar包时包含依赖
- 汉堡
- windows网络编程(六)——重叠I/O模型
- 东芝光耦TLP785GB去哪里买呢
- 编码格式简介
- java NIO系列教程(二)
- Thinking in java-12 数据作用域问题
- Java 自定义类里面的对象自动赋初值
- 时间戳和日期互相转换
- 踩坑之_绑定远程服务