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<V<10000),分别表示做完这张试卷所需的时间以及做完后能得到的价值! 输入以0 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
在编译器上的运行是正确的,可是不知道为啥提交不上
[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<V<10000),分别表示做完这张试卷所需的时间以及做完后能得到的价值! 输入以0 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 <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;
}
在编译器上的运行是正确的,可是不知道为啥提交不上
好气呀
作为一个资深学渣 真的不知道怎么改
哎
好希望有大神带我 可是大神都好忙
先记录下来,以后修改呀