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

代码如下:

#include<iostream>
#include <iomanip>
using namespace std;
int main()
{int i;int m,n;int t[20],v[20];double s[20];while(cin>>m>>n){if (m==0&&n==0)break;for(i=0; i<m; i++)cin>>t[i]>>v[i];for(i=0; i<m; i++)s[i]=double(v[i])/t[i];int x,fag=0;double max;double maxn=0;while(1){if(fag==m)break;max=0;for(i=0; i<m; i++)if(s[i]>max){max=s[i];x=i;}if(t[x]>n){maxn+=s[x]*n;break;}else{n-=t[x];maxn+=v[x];s[x]=0;fag++;}}cout<<setiosflags(ios::fixed)<<setprecision(2)<<maxn<<endl;}return 0;
}

运行结果:

学习心得:

典型的贪心算法。

 for(i=0; i<m; i++)s[i]=double(v[i])/t[i];

是为了将做每张试卷每小时能得到的价值即完成这张试卷的效率得出来,

然后

<span style="white-space:pre">      </span>for(i=0; i<m; i++)if(s[i]>max){max=s[i];x=i;}

是为了优先取能取得最大效率的试卷做,

 <span style="white-space:pre"> </span>   if(t[x]>n){maxn+=s[x]*n;break;}else{n-=t[x];maxn+=v[x];s[x]=0;fag++;}

如果做最大效率的那张试卷的时间直接超过了剩余的时间,那么就直接所有的时间都在用来做这张时间。

否则,每做一张就将这张对应的时间减去,价值加上,然后将这张效率归0,完成数+1,然后继续循环。

YTUOJ-HOMEWORK相关推荐

  1. nlp homework 03

    NLP Homework 03 --冯煜博 题目描述 (盒子和球模型)假设有3个盒子,每个盒子里装有红白两种颜色的球,盒子里的红白球有下表列出,初始状态分布. 解答 1. 给出HMM模型 \(\mu= ...

  2. HDU 5298 Solid Geometry Homework 暴力

    Solid Geometry Homework 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5298 Description Yellowstar ...

  3. HUST 1555 A Math Homework

    1555 - A Math Homework 时间限制:1秒 内存限制:128兆 338 次提交 131 次通过 题目描述 QKL is a poor and busy guy, and he was ...

  4. ACM Doing Homework again

    Ignatius刚刚从第30届ACM / ICPC回到学校.现在他有很多作业要做.每个老师给他一个截止作业的截止日期.如果Ignatius在截止日期之后进行了家庭作业,老师将减少他的最终考试成绩.现在 ...

  5. Codeforces Round #250 (Div. 2) A - The Child and Homework

    传送门Codeforces Round #250 (Div. 2) A - The Child and Homework 第一次做完之后交上去,过了例子.顺手就锁定了...然后一个小时之后就被HACK ...

  6. HDU 1789 Doing Homework again(馋)

    意甲冠军  参加大ACM竞争是非常回落乔布斯  每一个工作都有截止日期   未完成必要的期限结束的期限内扣除相应的积分   求点扣除的最低数量 把全部作业按扣分大小从大到小排序  然后就贪阿  能完毕 ...

  7. UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)

    这个问题,使得人们仿佛又回到了字符界面的时代. 问题链接:UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang). 题意简述:学生成绩 ...

  8. Doing Homework HDU - 1074

    Doing Homework HDU - 1074 题意: 有n个任务,每个任务有一个截止时间,超过截止时间一天,要扣一个分. 求如何安排任务,使得扣的分数最少. (1<=n<=15) 题 ...

  9. 动态规划训练16 [Doing Homework HDU - 1074 ]

    Doing Homework HDU - 1074 这是一道状态压缩DP(从N <= 15就可以看出来). 我们定义二进制状态S代表的是目前已经安排好的任务 dp[S].val代表的是目前已经安 ...

  10. USTC 2011 homework list [现代软件工程 作业]

    这是现代软件工程课的作业列表 (每周更新), 作业分为: 个人项目 Individual Project: 一个人独立完成 结对项目 Pair Project: 一对同学用结对编程的方法完成 团队项目 ...

最新文章

  1. Java中的Split方法不适用于一个句号
  2. java lock 效率_工作常用4种Java线程锁的特点,性能比较、使用场景
  3. 递归二分法php,PHP基于二分法实现数组查找功能示例【循环与递归算法】
  4. trunc 文字与格式与字符串不符_EXCEL字符串中间数字提取进阶
  5. S3C6410的Bootloader的两个阶段BL1和BL2编译相关学习
  6. DATE_FORMAT() 函数||DATE_SUB() 函数
  7. 充电网完成数千万元Pre-B轮融资,将会聚焦新能源乘用车市场
  8. NDIS与WinSock关系之自我扫盲
  9. Python 提取数据库(Postgresql)并邮件发送
  10. 禁用计算机组策略和管理,计算机正在使用时,禁用或关闭组策略刷新 | MOS86
  11. 谷歌搜索技巧:搜索语法+隐藏彩蛋+高级设置
  12. 【Android】ListView ViewHolder ArrayIndexOutOfBoundsException: length=2; index=2
  13. 栈、队列(链表实现)
  14. 软件开发中的需求文档由谁来编写_使用 RStudio 中的 Rmarkdown 编写演示文档
  15. Android 如何通过Retrofit提交Json格式数据
  16. android VideoPlayer原生播放方式
  17. 线材检测项目(基于QT)
  18. 九章云极DataCanvas公司荣获机器之心三大奖项,助力产业数智化升级
  19. 【JZOJ】3424. 粉刷匠
  20. linux下XAMP集成开发环境搭建流程总结

热门文章

  1. 七夕-wikipedia
  2. C++signed 与unsigned理解
  3. 品牌在社交电商领域的痛点
  4. PMI-ACP考试没过怎么办?如何补考?
  5. 计算机网络机房建设过程中单独设置接地体时,必备的IDC机房建设流程解析明细!...
  6. 人脸识别SeetaFace2原理与代码详解
  7. 常州信息职业技术学院计算机清考,常州信息职业技术学院教务处:http://jwc.ccit.js.cn/...
  8. Docker:云栖社区开源论题及Spark开源论题
  9. vue utils.js公共方法中axios请求返回数据
  10. 狂奔的低代码,画风各异的阿里云、腾讯云