FatMouse' Trade
来源:互联网 发布:oc内存管理源码 编辑:程序博客网 时间:2024/06/11 05:02
题目:
这个问题和背包问题几乎一样,只是有点细微差别。
要注意的是,有可能某个房间里有JavaBean但是需要的猫粮是零,这种情况要考虑。
代码:
#include<stdio.h>main(){int i,j;int a[1100],b[1100],tempx;double sum;double c[1100],temp;int m,n;while(scanf("%d%d",&m,&n)&&(m!=-1&&n!=-1)){sum=0;for(i=0;i<n;i++){scanf("%d%d",&a[i],&b[i]);}for(i=0;i<n;i++){if(b[i]==0){sum=sum+a[i];for(j=i;j<n-1;j++){a[j]=a[j+1];b[j]=b[j+1];}n--;i--;}}for(i=0;i<n;i++){c[i]=1.0*a[i]/b[i];}for(i=0;i<n;i++){for(j=0;j<n-1;j++){if(c[j]<c[j+1]){temp=c[j];c[j]=c[j+1];c[j+1]=temp;tempx=a[j];a[j]=a[j+1];a[j+1]=tempx;tempx=b[j];b[j]=b[j+1];b[j+1]=tempx;}}}for(i=0;i<n;i++){if(m>b[i]){sum=sum+a[i];m=m-b[i];}else{sum=sum+m*c[i]; break;}} printf("%.3lf\n",sum);}}
还有同学的一个:
#include<stdio.h>#include<algorithm>using namespace std;struct node{double a;double b;double c;}s[1000];bool cmp(node a,node b){return a.c>b.c;}int main(){ double p,q; int i,m,n; while(scanf("%d%d",&m,&n),(m!=-1)&&(n!=-1)){ p=0; q=0; for(i=0;i<n;i++){scanf("%lf%lf",&s[i].a,&s[i].b);s[i].c=s[i].a/s[i].b;}sort(s,s+n,cmp);i=0;while(p<m&&i<n){p+=s[i].b;q+=s[i].a;i++;}printf("%.3f\n",q-(p-m)*(s[i-1].a/s[i-1].b));}}
0 0
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- FatMouse' Trade
- Balanced Binary Tree
- powerpc开发板使用收获总结
- HDU 1166 敌兵布阵
- [Python]python学习笔记(一)——语法
- SRAM与SDRAM的区别
- FatMouse' Trade
- UILabel
- Effective C++读书笔记(10)
- 有九万八千张照片没得奖
- hdu 3572 Task Schedule SAP模板+完美建图
- Sicily 1926
- java.io.IOException: java.lang.reflect.InvocationTargetException 问题的解决
- 黑马程序员_13_7k之银行调度系统
- J2ee day 2 oracle