pid=1009 FatMouse' Trade - 简单贪心
2013-04-08 09:16
344 查看
题意:用后面的换前面的,尽可能换取更多,物品可以拆分。
/* http://acm.hdu.edu.cn/showproblem.php?pid=1009 FatMouse' Trade 简单贪心 */ #pragma comment(linker, "/stack:64000000") #define _CRT_SECURE_NO_DEPRECATE #include <cstdio> #include <iostream> #include <cstring> #include <string> #include <cmath> #include <queue> using namespace std; template <typename _T> _T Max(_T a , _T b){ return (a>b)?(a):(b); } template <typename _T> _T Max(_T a , _T b, _T c){ return (a>Max(b,c))?(a):(Max(b,c)); } template <typename _T> _T Min(_T a , _T b){ return (a<b)?(a):(b); } template <typename _T> _T Min(_T a , _T b, _T c){ return (a<Min(b,c))?(a):(Min(b,c)); } const int inf = -(1<<30); const int INF = (1<<30); const int M = 1e4 +10; struct T{ int cost,value; }trade[M]; bool comp(T a,T b){ return (a.value*1.0/a.cost) > (b.value*1.0/b.cost); } int main(){ //freopen("in.txt","r",stdin); int n,m; while(cin >> m >> n && n>=0&&m>=0){ if(n==0){cout << "0.000" << endl;continue;} for(int i = 0 ; i < n ; i++){ cin >> trade[i].value >> trade[i].cost; } sort(trade,trade+n,comp); int sum = 0; double ans = 0; for(int i = 0 ; ; i++){ if(m<trade[i].cost || !(i<n) ){ if(i<n && m>0 && trade[i].cost>0) ans = sum + m*(trade[i].value*1.0/trade[i].cost); else if(i<n && m!=0 && trade[i].cost==0) ans = sum + m*(trade[i].value*1.0); else if(i<n && m==0 && trade[i].cost==0) ans = sum + (trade[i].value*1.0); break; } ans = sum += trade[i].value; m -= trade[i].cost; } printf("%.3lf\n",(double)ans); } return 0; } /* 0 1 1 0 1 0 5 4 10000 5 2000 2 100 0 300 0 -1 -1 = 1.000 0.000 10400.000 */
相关文章推荐
- HDU-1009-FatMouse' Trade(简单贪心!)
- HDOJ 1009 FatMouse' Trade简单的贪心
- HDU 1009:FatMouse' Trade(简单贪心)
- HDU 1009:FatMouse' Trade(简单贪心)
- ACM--猫鼠交易--贪心--HDOJ 1009--FatMouse' Trade
- 杭电1009-FatMouse' Trade(贪心)
- 贪心 HDU 1009 FatMouse' Trade
- HDU1009 FatMouse' Trade贪心
- zoj 2109 || hdoj1009 FatMouse' Trade(贪心)
- 杭电hdu 1009 FatMouse' Trade 贪心
- ZJU2109 FatMouse' Trade - 简单贪心
- hdoj 1009 FatMouse' Trade 【贪心】
- 杭电acm 1009 FatMouse' Trade 比较典型的贪心问题
- 【贪心】 hdu1009 FatMouse' Trade
- HDUOJ-1009 FatMouse' Trade(贪心)
- hdu 1009 FatMouse' Trade(贪心)
- zoj 2109 FatMouse' Trade简单的贪心 (注意double数组的排序问题)
- hdoj 1009 FatMouse' Trade【贪心】
- HDU 1009 FatMouse' Trade(经典贪心)
- hdu 1009 FatMouse' Trade(贪心水题)