freePRoblemset
终于开学了 堕落了一个假期的我要好好学习了
尽管开学五天了 啥也没干
作为一个大二狗还没有大一的小鲜肉刷题多
是时候努力了
看完这个题就会知道要算出来效率,然后排序相加就阔以嘞
具体是这个样子的:
#include <stdio.h>#include <stdlib.h>struct node{ double time,val; double t_val;}a[22]; //定义一个结构体包括时间,价值 和效率int main(){ int m,n; double temp_t,temp_v; int i,j; double sum=0,temp;while(scanf("%d %d",&m,&n),n||m){ for(i=0;i<m;i++){ scanf("%lf%lf",&a[i].time,&a[i].val); a[i].t_val=a[i].val/a[i].time; } //数据的输入 for(i=0;i<m-1;i++) { for(j=0;j<m-1-i;j++){ if(a[i].t_val<=a[i+1].t_val){ temp=a[i].t_val; a[i].t_val=a[i+1].t_val; a[i+1].t_val=temp; temp_t=a[i].time; a[i].time=a[i+1].time; a[i+1].time=temp_t; temp_v=a[i].val; a[i].val=a[i+1].val; a[i+1].val=temp_v; } } } //对数据进行处理 从大到小排序 //这里要注意的是把时间价值也要换 for(i=0;i<m;i++){ if(n>=a[i].time){ //如果时间够的话,就加上效率最高的, sum+=a[i].val; n-=a[i].time; //并且从总时间里减去索要花费的时间 } else{ sum+=n*a[i].t_val;//把剩下的时间做没有做完的卷子 break; } } printf("%.2lf/n",sum);} return 0;}在编译器上的运行是正确的,可是不知道为啥提交不上好气呀
作为一个资深学渣 真的不知道怎么改
哎
好希望有大神带我 可是大神都好忙
先记录下来,以后修改呀
新闻热点
疑难解答