ZOJ2109 FatMouse' Trade,贪心算法
2011-09-03 16:49
579 查看
很简单的一题,用贪心算法可以解决。结构体内保存了JavaBean的数量j,cat food的数量f,以及j和f的比值rate。也就是说每1 cat food可以兑换多少JavaBean。然后对rate按照从大到小的顺序排序。然后每次按照rate从大到小的选择,保证cat food可以兑换最多的JavaBean。
// ZOJ2109 FatMouse' Trade.cpp : Defines the entry point for the console application. // // #include "stdafx.h" #include <fstream> #include <stdio.h> #include <iostream> #include <string.h> #include <string> #include <vector> #include <stack> #include <queue> #include <deque> #include <map> #include <math.h> #include <algorithm> #include <numeric> #include <functional> #include <memory.h> #include <limits> #include <assert.h> #include <ctype.h> using namespace std; struct node { int f,j; double rate; }rooms[1010]; bool cmp(const node &lhs,const node &rhs) { return lhs.rate>rhs.rate; } int main(void) { // ifstream cin("data.txt"); int m,n; while(cin>>m>>n && m>-1 &&n>-1) { for(int i=0;i<n;++i) { cin>>rooms[i].j>>rooms[i].f; rooms[i].rate=rooms[i].j*1.0/rooms[i].f; } sort(rooms,rooms+n,cmp); double sum=0; for(int i=0;i<n;++i) { if(m==0) break; else if(m>=rooms[i].f) { m-=rooms[i].f; sum+=rooms[i].j; } else { sum+=rooms[i].rate * m; m=0; break; } } printf("%0.3f\n",sum); } return 0; }
相关文章推荐
- hdu1009-FatMouse' Trade --- 贪心算法
- 【练习12】 贪心算法 1001 FatMouse' Trade
- 15HD_OJ——FatMouse' Trade (贪心算法)
- 贪心算法- 杭电OJ 1009 FatMouse' Trade
- hdu-1009 FatMouse' Trade(贪心算法)
- Hdu1009 - FatMouse' Trade - 贪心算法
- FatMouse' Trade(贪心算法)
- HDOJ 1009 FatMouse' Trade 贪心算法
- 杭电OJ ——1009——FatMouse' Trade
- ACM--猫鼠交易--贪心--HDOJ 1009--FatMouse' Trade
- hdu 1009 FatMouse' Trade
- HDU 1009 FatMouse' Trade(贪心)
- 杭电-FatMouse' Trade
- ZOJ-2109FatMouse' Trade
- HDU 1009 FatMouse' Trade
- zoj 2109 || hdoj1009 FatMouse' Trade(贪心)
- FatMouse' Trade
- hdu 1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade
- HDOJ_1009_FatMouse' Trade