HDU贪心题解
来源:互联网 发布:天下数据员工 编辑:程序博客网 时间:2024/05/21 12:42
HDU1009FatMouse' Trade
解法1:这里用冒泡排序完成#include<iostream>#include<algorithm>using namespace std;int main(){int a,b,c,i,l;double sum;int j[1010],f[1010];double k[1010],d;while(scanf("%d%d",&a,&b)!=EOF){if(a==-1&&b==-1)break;sum=0;for(i=0;i<b;i++){cin>>j[i]>>f[i];k[i]=j[i]*1.0/f[i];} for(i=0;i<b;i++) { for(l=i;l<b-i-1;l++) { if(k[l]>k[l+1]) { c=j[l];j[l]=j[l+1];j[l+1]=c; c=f[l];f[l]=f[l+1];f[l+1]=c; d=k[l];k[l]=k[l+1];k[l+1]=d; } } } int temp=a; for(i=b-1;i>=0;i--) { temp=temp-f[i]; if(temp>=0) sum=sum+j[i]; else{ sum=sum+(temp+f[i])*k[i]; break; } }//排完序如何计算也是关键 printf("%.3f\n",sum); }return 0;}
解法2:
#include<iostream>#include<algorithm>using namespace std;struct Node{ double j,f,p;}node[1000];int cmp(Node x,Node y){ return x.p>y.p;}int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF&&(m!=-1||n!=-1)) { double sum=0; int i; for(i=0;i<m;i++) { scanf("%lf%lf",&node[i].j,&node[i].f); node[i].p=node[i].j/node[i].f; } sort(node,node+m,cmp); for(int i=0;i<m;i++) { if(node[i].f<n) { sum=sum+node[i].j; n=n-node[i].f; } else { sum=sum+node[i].p*n; break; } } printf("%.3lf\n",sum); } return 0;}
1 0
- 贪心:HDU - 2037 题解
- 贪心 HDU 2037题解
- HDU贪心题解
- 贪心2 HDU - 1050 题解
- 贪心5 HDU - 1789 题解
- HDU 1661 Assigments 贪心法题解
- HDU 1051 Wooden Sticks 贪心题解
- HDU 1051题解分析---------贪心算法
- C - 贪心3 HDU - 1051 题解
- 7_4_E题 Edit distance题解 [hdu 2895] (贪心)
- 7_4_F题 Task 题解[hdu 4846](贪心)
- sequence题解(贪心)
- ☆HDU 5976 Detachment 详细题解(贪心+逆元+前缀和,积)
- HDU 贪心
- 【贪心】hdu
- dlut1224题解-贪心及注意事项
- 【BZOJ】【P2697】【特技飞行】【题解】【贪心】
- HLJU14级贪心训练题解
- 【HDU 1027 Ignatius and the Princess II】+ 全排列 + STL
- 机器学习与计算机视觉大牛族谱
- MyEclipse不能自动编译解决方法总结(转)/debug时断点乱跳问题的解决办法
- 关于chrome控制台警告:Synchronous XMLHttpRequest on the main thread终极解决办法
- 折腾opencv svm 而想到的
- HDU贪心题解
- Vector sort 用法
- Thread方法解释(join,sleep,yield,interrupt)
- 三层架构理论篇
- JQueryEasyUI 组件dialog
- redirect和forward的比较
- centOs7安装redis
- Dagger2使用教程
- CodeForces 498D Traffic Jams in the Land