Home work

Submit: 618  Solved: 77
[Submit][Status][Web Board]
Description

临近开学了,大家都忙着收拾行李准备返校,但I_Love_C却不为此担心! 因为他的心思全在暑假作业上:目前为止还未开动(-_-!!还以为他有多冷静呢)。
暑假作业是很多张试卷,我们这些从试卷里爬出来的人都知道,卷子上的题目有选择题、填空题、简答题、证明题等。 而做选择题的好处就在于工作量很少,但又因为选择题题目都普遍很长。 如果有5张试卷,其中4张是选择题,最后一张是填空题,很明显做最后一张所花的时间要比前4张长很多。 但如果你只做了选择题,虽然工作量很少,但表面上看起来也已经做了4/5的作业了。 I_Love_C决定就用这样的方法来蒙混过关。
他统计出了做完每一张试卷所需的时间以及它做完后能得到的价值(按上面的原理,选择题越多价值当然就越高咯)。 现在就请你帮他安排一下,用他仅剩的一点时间来做最有价值的作业。
Input

测试数据包括多组。 每组测试数据以两个整数M,N(0≤M≤20, 1≤N≤10000)开头,分别表示试卷的数目和I_Love_C剩下的时间。 接下来有M行,每行包括两个整数T,V(1≤T≤N,0 Output

对应每组测试数据输出I_Love_C能获得的最大价值。
保留小数点2位
Sample Input

4 20
4 10
5 22
10 3
1 2
0 0

Sample Output

37.00

HINT

float的精度可能不够。 你应该使用double类型。 报告参见http://acm.zjgsu.edu.cn/Report/1001/1001.html

Source

freeproblemset



终于开学了 堕落了一个假期的我要好好学习了

尽管开学五天了 啥也没干

作为一个大二狗还没有大一的小鲜肉刷题多

是时候努力了

看完这个题就会知道要算出来效率,然后排序相加就阔以嘞

具体是这个样子的:

#include 
#include 

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=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;
}

在编译器上的运行是正确的,可是不知道为啥提交不上

好气呀 

作为一个资深学渣 真的不知道怎么改

好希望有大神带我   可是大神都好忙

先记录下来,以后修改呀

你可能感兴趣的:(贪心)