zoj 2109 简单贪心背包

来源:互联网 发布:易编程手机 编辑:程序博客网 时间:2024/06/06 02:19

用qsort过不了,sort就过了不知道为什么

#include<stdio.h>#include<stdlib.h> #include<string.h>#include <algorithm> using namespace std;struct fm{int j,f;double jperf;} cat[1010];bool cmp( struct fm a,struct fm b )  {      return a.jperf>b.jperf;  }    int main(){int m,n;while(scanf("%d%d",&m,&n)&&m>=0&&n>=0){int i;for(i = 0;i<n;i++){scanf("%d%d",&cat[i].j,&cat[i].f);cat[i].jperf = cat[i].j *1.0 / cat[i].f;}sort(cat,cat + n,cmp);i = 0;double jb = 0;while(m>0&&i<n){if(cat[i].f<m){m -= cat[i].f;jb += cat[i].j;}else {jb += cat[i].jperf*m;m = 0;}i++;}printf("%.3lf\n",jb);}return 0;}


0 0
原创粉丝点击