zoj 2109 || hdoj1009 FatMouse' Trade(贪心)
2011-11-28 07:53
519 查看
题意:M NJ[i] F[i]fatmouse有M克猫粮(类似吧),现在有个房间,F[i] pounds 猫粮 可以换 J[i] pounds javabeans.(hdoj的discuss里有句话很搞:“在我查过大量的资料后,终于明白了,JavaBean是一种爪哇产的咖啡豆,肥鼠怎么可能喜欢吃这种东西...........”)分析:果断贪心,按照j/f 排序。WA了几次,还是因为思考问题不严密啊,真的要有意识地加强。严谨!!!.1 0 和0 11 0这两组数据过不了,然后就断网了。继续把情况考虑了下.早上很早就起来交上去试试,结果行了。哎,郁闷。学姐也发给我一份她改过的,没考虑特殊情况,只不过在判断条件上我用
if(M>a[i].f)
然后她是加了个=。这样就可以了。>_<
偶的丑代码:
#include <iostream> #include <cstdio> using namespace std; typedef struct p{ int j,f; double d; }point; int main() { int M,N; int i,j; double ff,res; point a[1005],temp; while(~scanf("%d%d",&M,&N)) { if(M==-1&&N==-1) break; res=0; if(N==0) printf("%.3f\n",res); for(i=0;i<N;i++) { cin>>a[i].j>>a[i].f; a[i].d=(double)a[i].j/a[i].f; } for(i=0;i<N;i++) { for(j=i;j<N;j++) { if(a[i].d<a[j].d) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } for(i=0;i<N;i++) { if(M>a[i].f) { res+=a[i].j; M-=a[i].f; if((i>=N-1&&M>0)||M==0) {printf("%.3f\n",res);break;} } else if(M<=a[i].f) { ff=(double)a[i].j/a[i].f; if(a[i].f==0) res+=a[i].j; else res+=ff*M; printf("%.3f\n",res); break; } } } return 0; }
学姐的:
#include <iostream>#include <cstdio>using namespace std;typedef struct p{ int j,f; double d;}point;int main(){ int M,N; int i,j; double res; point a[1005],temp; while(~scanf("%d%d",&M,&N)) { if(M==-1&&N==-1) break; res=0; for(i=0;i<N;i++) { cin>>a[i].j>>a[i].f; a[i].d=(double)a[i].j/a[i].f; } for(i=0;i<N;i++) { for(j=i;j<N;j++) { if(a[i].d<a[j].d) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } for(i=0;i<N;i++) { if(M>=a[i].f)//条件注意 { res+=a[i].j; M-=a[i].f; if(M==0) break; } else if(M<a[i].f) { res+=a[i].d*M; break; } } printf("%.3f\n",res); } return 0;}
相关文章推荐
- hdoj 1009 FatMouse' Trade 【贪心】
- zoj 2109 FatMouse' Trade简单的贪心 (注意double数组的排序问题)
- zoj 2109 FatMouse' Trade (纯水背包问题~贪心❤)
- ACM--猫鼠交易--HDOJ 1009--FatMouse' Trade--贪心
- hdoj 1009 FatMouse' Trade【贪心】
- hdoj1009_FatMouse' Trade(贪心)
- HDOJ - 1009 - FatMouse' Trade(贪心)
- zoj 2109 FatMouse' Trade 贪心
- ACM--猫鼠交易--贪心--HDOJ 1009--FatMouse' Trade
- HDOJ 1009 FatMouse' Trade简单的贪心
- HDOJ: 1009FatMouse' Trade
- hdoj 1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade(贪心水题)
- hdu1009,FatMouse' Trade,经典贪心算法
- 贪心 HDU 1009 FatMouse' Trade
- hdu 1009 FatMouse' Trade(贪心)
- HDU1009 FatMouse' Trade贪心
- ZOJ-2109FatMouse' Trade
- HDOJ 1009 FatMouse' Trade
- ZOJ 2109 FatMouse's Trade(贪心)