FatMouse' Trade(杭电1009)

FatMouse' Trade(杭电1009)

大家好,又见面了,我是全栈君。

FatMouse’ Trade

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 1   Accepted Submission(s) : 1

Font: Times New Roman | Verdana | Georgia

Font Size:  

Problem Description

FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containing his favorite food, JavaBean.

The warehouse has N rooms. The i-th room contains J[i] pounds of JavaBeans and requires F[i] pounds of cat food. FatMouse does not have to trade for all the JavaBeans in the room, instead, he may get J[i]* a% pounds of JavaBeans if he pays F[i]* a% pounds of cat food. Here a is a real number. Now he is assigning this homework to you: tell him the maximum amount of JavaBeans he can obtain.

Input

The input consists of multiple test cases. Each test case begins with a line containing two non-negative integers M and N. Then N lines follow, each contains two non-negative integers J[i] and F[i] respectively. The last test case is followed by two -1’s. All integers are not greater than 1000.

Output

For each test case, print in a single line a real number accurate up to 3 decimal places, which is the maximum amount of JavaBeans that FatMouse can obtain.

Sample Input

5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1

Sample Output

13.333
31.500
//本题是简单贪心问题。意思是老鼠有m榜猫粮,通过给猫粮东西data[i].b能够兑换data[i].a,求最多能够兑换多少食物。

//仅仅需将data[i].a/data[i].b的值从大到小排序就可以求解。

#include<stdio.h>struct st{ double a; double b; double c;}data[1000];int main(){ int i,j,m,n; struct st data[1000],t; while(scanf("%d %d",&m,&n)&&(m!=-1||n!=-1)) { double sum=0.000; for(i=0;i<n;i++) { scanf("%lf %lf",&data[i].a,&data[i].b); } for(i=0;i<n;i++) { for( j=i+1;j<n;j++) { if((data[i].a/data[i].b)<data[j].a/data[j].b) { t=data[i]; data[i]=data[j]; data[j]=t;} } } for(i=0;i<n;i++) { if(m-data[i].b>=0.001) { sum+=data[i].a; m-=data[i].b; } else { sum=sum+m*data[i].a/data[i].b; break; } } printf("%.3lf\n",sum); } return 0;}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116298.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • opencv 图像伽马校正

    opencv 图像伽马校正Referfromhttp://blog.csdn.net/xiaojidan2011/article/details/8027670伽马校正,最好的,最高效的方法是通过table来访问:核心函数LUT(TheCoreFunction)¶这是最被推荐的用于实现批量图像元素查找和更该操作图像方法。在图像处理中,对于一个给定的值,将其替换成其他的值是一个很常见的操作,Ope

    2022年9月24日
    2
  • win8最流畅的设置方法_Windows 12

    win8最流畅的设置方法_Windows 12indowsXP终极优化设置(精心整理篇)◆一、系统优化设置◆1、系统常规优化1)关闭系统属性中的特效,这可是简单有效的提速良方。点击开始→控制面板→系统→高级→性能→设置→在视觉效果中,设置为调整为最佳性能→确定即可。2)“我的电脑”-“属性”-“高级”-“错误报告”-选择“禁用错误汇报”。3)再点“启动和故障恢复”-“设置”,将“将事件写入系统日志”、“发送管理警报”、“自动重新启动”这三项

    2022年10月21日
    3
  • Harris角点学习[通俗易懂]

    Harris角点学习[通俗易懂]人们普遍认为角点是二维图像亮度变化剧烈的点或图像边缘曲线上曲率极大值的点。这些点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。其在三维场景重建、运动估计、目标跟踪、目标识别、图像配准与匹配等计算机视觉领域起着非常重要的作用。  角点的检测主要有两类基于图像边缘的方法和基于图像灰度的方法。前者很

    2022年9月25日
    4
  • Nginx服务配置编写

    Nginx服务配置编写

    2021年7月2日
    97
  • HTML5仿微信公众号界面

    HTML5仿微信公众号界面

    2021年6月5日
    224
  • IDEA2022激活码mac【2022最新】2022.03.08

    (IDEA2022激活码mac)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月2日
    173

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号