杭电1070--喝牛奶
2015-10-24 14:04
288 查看
牛奶
问题描述
伊格内修斯每天喝牛奶,现在他在超市里,他想选择一瓶牛奶。在超市有许多种类的牛奶,所以伊格内修斯想知道哪种牛奶是最便宜的。
这里有一些规则:
1。伊格内修斯永远不会喝牛奶生产6天前或更早。这意味着如果牛奶生产2005-1-1,伊格内修斯永远不会喝这瓶后2005-1-6(包容)。
2。伊格内修斯每天喝200毫升牛奶。
3所示。如果牛奶瓶子里剩下不到200毫升,伊格内修斯会扔掉它。
4所示。超市里所有的牛奶是今天生产。
注意,伊格内修斯只是想买一瓶牛奶,所以如果一个瓶子的体积数小于200毫升,你应该忽略它。
鉴于一些信息的牛奶,你的任务就是告诉伊格内修斯这牛奶是最便宜的。
输入
输入包含多个测试用例。输入的第一行是一个整数T测试用例的数量。T测试用例。
每个测试用例开始于一个整数N(1 < = N < = 100)的数量种类的牛奶。N行,每一行包含一个字符串S(长度将最多100个字符)标明品牌的牛奶,然后两个整数的品牌:P(元),这是一瓶的价格,V(mL),这是一个瓶子的体积。
输出
为每个测试用例,你应该输出品牌的牛奶是最便宜的。如果有超过一个便宜的品牌,你应该输出的最大体积。
样例输入
2
2
Yili 10 500
Mengniu 20 1000
4
Yili 10 500
Mengniu 20 1000
Guangming 1 199
Yanpai 40 10000
样例输出
Mengniu
Mengniu
题意:
1。伊格内修斯永远不会喝牛奶生产6天前或更早。这意味着如果牛奶生产2005-1-1,伊格内修斯永远不会喝这瓶后2005-1-6(包容)。
2。伊格内修斯每天喝200毫升牛奶。
3所示。如果牛奶瓶子里剩下不到200毫升,伊格内修斯会扔掉它。
4所示。超市里所有的牛奶是今天生产。
注意,伊格内修斯只是想买一瓶牛奶,所以如果一个瓶子的体积数小于200毫升,你应该忽略它。(不处理)
思路:
根据每天的平均消费最少的进行选择(价钱/),>=6天的认为只要5天
代码:
代码2:
问题描述
伊格内修斯每天喝牛奶,现在他在超市里,他想选择一瓶牛奶。在超市有许多种类的牛奶,所以伊格内修斯想知道哪种牛奶是最便宜的。
这里有一些规则:
1。伊格内修斯永远不会喝牛奶生产6天前或更早。这意味着如果牛奶生产2005-1-1,伊格内修斯永远不会喝这瓶后2005-1-6(包容)。
2。伊格内修斯每天喝200毫升牛奶。
3所示。如果牛奶瓶子里剩下不到200毫升,伊格内修斯会扔掉它。
4所示。超市里所有的牛奶是今天生产。
注意,伊格内修斯只是想买一瓶牛奶,所以如果一个瓶子的体积数小于200毫升,你应该忽略它。
鉴于一些信息的牛奶,你的任务就是告诉伊格内修斯这牛奶是最便宜的。
输入
输入包含多个测试用例。输入的第一行是一个整数T测试用例的数量。T测试用例。
每个测试用例开始于一个整数N(1 < = N < = 100)的数量种类的牛奶。N行,每一行包含一个字符串S(长度将最多100个字符)标明品牌的牛奶,然后两个整数的品牌:P(元),这是一瓶的价格,V(mL),这是一个瓶子的体积。
输出
为每个测试用例,你应该输出品牌的牛奶是最便宜的。如果有超过一个便宜的品牌,你应该输出的最大体积。
样例输入
2
2
Yili 10 500
Mengniu 20 1000
4
Yili 10 500
Mengniu 20 1000
Guangming 1 199
Yanpai 40 10000
样例输出
Mengniu
Mengniu
题意:
1。伊格内修斯永远不会喝牛奶生产6天前或更早。这意味着如果牛奶生产2005-1-1,伊格内修斯永远不会喝这瓶后2005-1-6(包容)。
2。伊格内修斯每天喝200毫升牛奶。
3所示。如果牛奶瓶子里剩下不到200毫升,伊格内修斯会扔掉它。
4所示。超市里所有的牛奶是今天生产。
注意,伊格内修斯只是想买一瓶牛奶,所以如果一个瓶子的体积数小于200毫升,你应该忽略它。(不处理)
思路:
根据每天的平均消费最少的进行选择(价钱/),>=6天的认为只要5天
代码:
# include <iostream> # include <cstdio> using namespace std; int main(){ char st[103][103]; int a[103],b[103],c[103]; float v[103]; int i,j,k,n,m; while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++){ scanf("%d",&m); for(j=0;j<m;j++) scanf("%s%d%d",st[j],&a[j],&b[j]); for(j=0;j<m;j++)//计算能喝几天 if(b[j]<200){ c[j] = 0; }else{ c[j] = b[j]/200; if(c[j]>=6){ c[j] = 5; } } for(j=0;j<m;j++){ if(c[j]==0){ v[j]=0; continue; }else v[j] = 1.0*a[j]/c[j]; } int at=0,bt=0,ct=0,cnt=0; float max = 9999999; for(j=0;j<m;j++){ if(v[j]<=max&&b[j]>=200){ if(v[j]==max){ if(b[j]>b[cnt]) cnt = j; }else{ max = v[j]; cnt = j; } } } /* 按天数计算的 for(j=0;j<m;j++){ if(c[j]>max){ max = c[j]; cnt = j; }else if(c[j]==max){ if(v[j]<v[cnt]){ max = c[j]; cnt = j; }else if(v[j]==v[cnt]){ if(b[j]>b[cnt]){ max = c[j]; cnt = j; } } } } */ printf("%s\n",st[cnt]); } } return 0; }
代码2:
# include <iostream> # include <cstdio> using namespace std; struct Milk{ char name[100]; int price; int v;//体积 int day; //可以喝几天 int avg; //平均价钱 }; int main(){ int T,n,m,i,j,k; Milk milks[103]; while(scanf("%d",&T)!=EOF){ while(T--){ scanf("%d",&n); float max = 9999999; int cnt = 0; for(i=0;i<n;i++){ scanf("%s%d%d",milks[i].name,&milks[i].price,&milks[i].v); if(milks[i].v<200){ continue; }else{ milks[i].day = milks[i].v/200; if(milks[i].day>=6){ milks[i].day = 5; } milks[i].avg = milks[i].price/milks[i].day; if(milks[i].avg<=max){ if(milks[i].avg<max){ max = milks[i].avg; cnt = i; }else if(milks[i].avg==max){ if(milks[i].v>milks[cnt].v){ cnt = i; } } } } } printf("%s\n",milks[cnt].name); } } return 0; }
相关文章推荐
- HDU 1216 Assistance Required(模拟)
- 1.1 IS Unique
- javascript的继承模式
- alibaba的FastJson(高性能JSON开发包)
- HDU——2008 数值统计
- How to trace tran log file growth ?
- Collection探究之ArrayList
- HTML(学习的开始) 忍者龙剑传页面 代码《菜鸟级别》
- 苹果电脑Mac OS系统重装图文详解
- 芒果iOS开发人事面试问题及答案汇总一
- 关闭自动弹出照片自动弹出iTunes以及关闭手机照片流
- Mac无法找到摄像头问题解决
- 挖坑2_记得是有东西的。但想不起了,想起了填。
- 挖坑1_float_int/
- android图片特效
- Ubuntu 14.04LTS+Git
- 字符编码的前世今生
- POJ 1503 Integer Inquiry 简单大数相加
- UML学习笔记之类图与对象图
- mac 使用清除废纸篓或彻底删除某文件 附加: smb afp ftp NAS 访问服务器相关