快餐问题
来源:互联网 发布:linux hba卡查看 编辑:程序博客网 时间:2024/04/28 12:47
快餐问题
Description
Peter最近在
价格便宜。为了提高产量,Peter从著名的麦当劳公司引进了
所有的生产线都可以生产汉堡,薯条和饮料,由于每条生产线每天所能提供的生产时间是有限的、不同的,而汉堡,薯条和饮料的单位生产时间又不同。
这使得Peter很为难,不知道如何安排生产才能使一天中生产的套餐产量最大。
请你编一程序,计算一天中套餐的最大生产量。
为简单起见,假设汉堡、薯条和饮料的日产量不超过
Input
第一行为三个不超过
第二行为
中间以一个空格分开。
第三行为为一个整数
第四行为
Output
仅一行,即每天套餐的最大产量。
Sample Input
2 2 2
1 2 2
2
6 6
Sample Output
1
Solution
设
则,
Code
#include <iostream>#include <cstdio>#define Max(x,y) ((x)>(y)?(x):(y))#define Min(x,y) ((x)<(y)?(x):(y))using namespace std;int n,ans,x[4],p[4],t[20],f[20][110][110],s;int main(){ freopen("meal.in","r",stdin);#ifndef DEBUG freopen("meal.out","w",stdout);#endif memset(f,0xc0,sizeof f); f[0][0][0]=0; scanf("%d%d%d",&x[1],&x[2],&x[3]); scanf("%d%d%d",&p[1],&p[2],&p[3]); scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&t[i]); for(int i=1;i<=n;i++){ s+=t[i]; int down1=Min(s/p[1],100),down2=Min(s/p[2],100); for(int j=0;j<=down1;j++) for(int k=0;k<=down2;k++) for(int l=0;l<=j;l++){ for(int c=0;c<=k;c++){ //if(t[i]<=(l*p[1]+c*p[2])/p[3])break; if(t[i]<l*p[1]+c*p[2])break; f[i][j][k]=Max(f[i][j][k],f[i-1][j-l][k-c]+(t[i]-(l*p[1]+c*p[2]))/p[3]); if(f[i][j][k]>100){ f[i][j][k]=100; ans=Max(ans,Min(Min(f[i][j][k]/x[3],j/x[1]),k/x[2])); break; } if(f[i][j][k]>0)ans=Max(ans,Min(Min(f[i][j][k]/x[3],j/x[1]),k/x[2])); } } } printf("%d\n",ans); return 0;}
0 0
- 快餐问题
- wiki-1260-快餐问题
- wikioi 快餐问题
- wiki 1260 快餐问题
- wikioi 1260 快餐问题
- 1260 快餐问题
- Codevs 1260 快餐问题
- codevs 1260 快餐问题 DP
- 爱情快餐
- kfc“快餐”
- 旅游快餐
- 快餐电话
- lua 快餐
- 快餐库
- 快餐配送系统(快餐软件) 下载
- 广东仔快餐
- 丽华快餐
- 中小企业信息化“快餐”
- NodeJS 创建TCP服务器
- mysql锁详解
- Arrays工具类
- 求助:“/ZJCM”应用程序中的服务器错误。
- APM2.8 Rover 自动巡航车设计(硬件连接)
- 快餐问题
- iOS之获取设备ID
- 自学网站 — 合集
- 5年IT从业的感悟和未来百万年薪畅想
- MYSQL 常用指令集合
- docker容器日志的收集---fluentd
- Linux下source命令
- 黑马程序员——JAVA变量初始化的默认值
- iOS9.2.1降级工具和降级过程