【学习笔记】〖九度OJ〗题目1433:FatMouse
2014-03-05 17:34
274 查看
题目1433:FatMouse
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:888
解决:400
题目描述:
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.
The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of
cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.
输入:
The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers J[i] and F[i] respectively. The last test
case is followed by two -1's. All integers are not greater than 1000.
输出:
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.
样例输入:
样例输出:
//简单的贪心策略
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:888
解决:400
题目描述:
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.
The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of
cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.
输入:
The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers J[i] and F[i] respectively. The last test
case is followed by two -1's. All integers are not greater than 1000.
输出:
For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.
样例输入:
5 3 7 2 4 3 5 2 20 3 25 18 24 15 15 10 -1 -1
样例输出:
13.333 31.500
//简单的贪心策略
#include<iostream> #include<algorithm> #include<iomanip> using namespace std; class House { public: int weight; int cost; double ratio; void init(int w, int c) { weight = w; cost = c; ratio = (double)w/(double)c; } bool operator < (House h)const { return ratio - h.ratio > 0.0001; } }; House wh[1001]; int main() { freopen("input.in", "r", stdin); freopen("output.out", "w", stdout); int m, n, w, c, i; double res; while (cin >> m && m!= -1) { cin >> n; for (i=0; i<n; i++) { cin >> w >> c; wh[i].init(w, c); } sort(wh, wh+n); //计算 res = 0; i=0; while (m>0 && i<n) { if (m>wh[i].cost) { res += wh[i].weight; m -= wh[i].cost; } else { res += (double)m/(double)wh[i].cost * (double)wh[i].weight; m = 0; break; } i++; } cout << setiosflags(ios::fixed) << setprecision(3); cout << res << endl; } return 0; }
相关文章推荐
- 九度OJ学习笔记 题目1096
- 九度OJ学习笔记 题目1156
- 【学习笔记】〖九度OJ〗题目1161:Repeater
- 【学习笔记】〖九度OJ〗题目1104:整除问题
- 题目1433:FatMouse 九度OJ
- 【学习笔记】〖九度OJ〗题目1153:括号匹配问题
- 【学习笔记】〖九度OJ〗题目1153:括号匹配问题
- 【学习笔记】〖九度OJ〗题目1186:打印日期
- 【学习笔记】〖九度OJ〗题目1326:Waiting in Line
- 【学习笔记】〖九度OJ〗题目1186:打印日期
- 【学习笔记】〖九度OJ〗题目1326:Waiting in Line
- 【学习笔记】〖九度OJ〗题目1156:谁是你的潜在朋友
- 【学习笔记】〖九度OJ〗题目1437:To Fill or Not to Fill
- 【学习笔记】〖九度OJ〗题目1156:谁是你的潜在朋友
- 【学习笔记】〖九度OJ〗题目1437:To Fill or Not to Fill
- 九度OJ学习笔记 题目1126
- 【学习笔记】〖九度OJ〗题目1432:叠筐
- 【学习笔记】〖九度OJ〗题目1464:Hello World for U
- 【学习笔记】〖九度OJ〗题目1432:叠筐
- 【学习笔记】〖九度OJ〗题目1138:进制转换