杭电OJ1009 FatMouse' Trade

来源:互联网 发布:hadoop与java的关系 编辑:程序博客网 时间:2024/05/16 16:56

简单的部分背包问题,相除排序然后取

#include<stdio.h>#include<stdlib.h>struct doors{float java;float fat;double result;}dor[1005];int cmp(const void *a,const void *b){    return ((struct doors *)b)->result > ((struct doors *)a)->result ? 1 : -1;}int main(void){int m, n, i, j;double sum;while( scanf("%d%d", &m, &n), m != -1 || n != -1){for( i = 0; i < n; i++){scanf("%f%f", &dor[i].java, &dor[i].fat);dor[i].result = dor[i].java * 1.0 / dor[i].fat;//这里有一个问题,如果不乘1.0话就WA,可是明明是浮点数相除啊}qsort( dor,n,sizeof(struct doors),cmp);sum = 0;for( i = 0; i < n; i++){if( m < dor[i].fat){sum += dor[i].result * m;break;}else{sum += dor[i].java;m -= dor[i].fat;}}printf("%.3lf\n", sum);}return 0;}

0 0
原创粉丝点击