HDU-1009 FatMouse' Trade 贪心
2015-03-11 10:50
387 查看
题意:
老鼠要拿猫粮(F)换鼠粮(J)
老鼠手上有M磅猫粮(F),有N个房间,每个房间的猫都开出了不同的兑换比例
输入数据为每个房间中用多少猫粮(F)可以换多少鼠粮(J)
需要计算老鼠最多可换得鼠粮(J)总数
思路:
计算每个房间猫鼠粮的权重比并进行排序,优先兑换比重大的
Code:
老鼠要拿猫粮(F)换鼠粮(J)
老鼠手上有M磅猫粮(F),有N个房间,每个房间的猫都开出了不同的兑换比例
输入数据为每个房间中用多少猫粮(F)可以换多少鼠粮(J)
需要计算老鼠最多可换得鼠粮(J)总数
思路:
计算每个房间猫鼠粮的权重比并进行排序,优先兑换比重大的
Code:
#include <iostream> #include <algorithm> #include <iomanip> #include <cstdio> using namespace std; struct Food { double j, f; double rate; }food[1005]; int cmp(Food x, Food y) { return x.rate > y.rate; } int main() { #ifndef ONLINE_JUDGE freopen("1009in.txt","r",stdin); #endif int m, n; int i; double sum; while(cin>>m>>n && !(m == -1 || n == -1)){ for(i = 0; i < n; i++){ cin>>food[i].j>>food[i].f; food[i].rate = food[i].j / food[i].f; } sort(food, food+n, cmp); sum = 0; for(i = 0; i < n; i++){ if(m*food[i].rate <= food[i].j){ sum += m*food[i].rate; break; } else{ sum += food[i].j; m -= food[i].f; } } cout<<fixed<<setprecision(3)<<sum<<endl; } return 0; }
相关文章推荐
- hdu 1009 FatMouse' Trade (水题,贪心)
- HDU1009_FatMouse' Trade【贪心】【水题】
- HDU 1009 FatMouse' Trade(水贪心)
- HDU 1009 FatMouse' Trade (贪心)
- hdu 1009 FatMouse' Trade 简单贪心
- HDU(1009)FatMouse' Trade(贪心)
- HDU 1009 FatMouse' Trade 简单贪心,细节处理
- hdu1009 nyoj824 FatMouse' Trade 简单贪心
- hdu 1009 FatMouse' Trade 贪心
- HDU 1009 FatMouse' Trade (贪心)
- HDU 1009:FatMouse' Trade【贪心】
- hdu 1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade 贪心入门
- hdu-1009-贪心-FatMouse' Trade
- HDU1009 FatMouse' Trade 贪心
- 一入贪心深似海 ~ HDU 1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade 贪心
- HDU1009 FatMouse' Trade 【贪心】
- HDU 1009 FatMouse' Trade (贪心)
- HDU_1009 FatMouse' Trade 【贪心】