【杭电】[1009]FatMouse' Trade
2016-07-23 08:58
288 查看
计算单位价值之后排序就好
需要注意若物品“免费”
则可以直接把其重量加入sum
#include<stdio.h> #include<algorithm> using namespace std; struct node { int j,f; double m; } a[1200]; bool cmp(node A,node B) { return A.m>B.m; } int main() { int m,n; while(scanf("%d %d",&m,&n),m!=-1||n!=-1) { double sum=0; for(int i=0; i<n; i++) { scanf("%d %d",&a[i].j,&a[i].f); if(a[i].f>0) a[i].m=(double)a[i].j/a[i].f; else { a[i].m=0; sum+=a[i].j; } } sort(a,a+n,cmp); for(int i=0; i<n; i++) { sum+=min(m,a[i].f)*a[i].m; m-=min(m,a[i].f); } printf("%.3lf\n",sum); } return 0; }
题目地址:【杭电】[1009]FatMouse’ Trade
相关文章推荐
- 高精度加法——杭电1002
- Hdu2066(一个人的旅行)
- 杭电1870 愚人节的礼物
- 关于杭电1405 The Last Practice 的问题
- hdu-1103 模拟题。
- hdu-1022 栈的应用。
- hdu-1247 简单map的应用。(字典树)
- hdu-1251 字典树公共前缀。
- hdu-1075 map映射表的应用。
- 杭电ACM Steps (1)
- hdu 1005 -- Number Sequence
- hdu 1007 -- Quoit Design
- 杭电1004
- 杭电1005
- 杭电1008
- c++编写藏手帕问题
- 杭电oj-1003
- 杭电oj-1004
- 杭电oj-1005
- 并查集示例1