【让我悲催的水题】HDU 1070 Milk
http://acm.hdu.edu.cn/showproblem.php?pid=1070题意:
①:milk最多只能喝5天
②:每天喝200ml
③:如果剩下的小于200ml,就要扔掉
④:所有milk都是今天生产的
⑤:当有多个milk一样便宜时,选择体积最大的
给出商标+1瓶的价格+体积,找出最便宜的那种milk
错了11次http://dl.iteye.com/upload/attachment/518806/60fda549-778a-3748-9a6e-784568f7bcae.gif灰常悲催
http://dl.iteye.com/upload/attachment/518804/9c5eb1a5-b730-37b6-bf16-1589fc97ce1a.png
网上很多童鞋都排序了,其实这题根本不用排序……
错误代码:
#include <iostream>#include <fstream>#include <algorithm>#include <string>#include <set>//#include <map>#include <queue>#include <utility>#include <iomanip>#include <stack>#include <list>#include <vector>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <ctype.h>using namespace std;#define inf 0x3fffffffstruct milk{ char name; int p, v;};int main(){ int t, n, i, days, x; double mins, price; milk m; scanf ("%d", &t); while (t--) { scanf ("%d", &n); mins = inf; for (i = 0; i < n; i++) { scanf ("%s%d%d", m.name, &m.p, &m.v); if (m.v < 200) continue; if (m.v > 1000) m.v = 1000; //核心错误,擅自修改了体积,导致条件⑤不成立 days = m.v / 200; price = 1.0 * m.p / days; if (mins > price) mins = price, x = i; else if (mins == price && m.v > m.v) x = i; } printf ("%s\n", m.name); } return 0;}
正确代码:
#include <iostream>#include <fstream>#include <algorithm>#include <string>#include <set>//#include <map>#include <queue>#include <utility>#include <iomanip>#include <stack>#include <list>#include <vector>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <ctype.h>using namespace std;struct milk{ char name; int p, v;};int main(){ int t, n, i, days, x; double mins, price; milk m; scanf ("%d", &t); while (t--) { scanf ("%d", &n); mins = -1; for (i = 0; i < n; i++) { scanf ("%s%d%d", m.name, &m.p, &m.v); if (m.v < 200) //忽略小于200lm的milk continue; if (m.v > 1000) price = 1.0 * m.p / 5; //错点,一开始没理解,考虑成6天…… else { days = m.v / 200; price = 1.0 * m.p / days; } if (mins > price || mins < 0) //x是暂时最便宜的标记 mins = price, x = i; else if (mins == price && m.v > m.v) //条件⑤ x = i; } printf ("%s\n", m.name); } return 0;}
页:
[1]