zoj2109
来源:互联网 发布:bat java工程师面试题 编辑:程序博客网 时间:2024/06/06 07:38
题目大意:
FatMouse准备了M磅猫粮,准备和守卫在仓库门口的猫交换JavaBean。仓库有N个房间,第i个房间有J[i]磅JavaBean,需要F[i]磅猫粮。FatMouse不必全部交换,他可以按比例交换。请计算他最大可以换多少JavaBean。
输入:
M,N
接下来的N行是J[i]和F[i]
解题思路:
简单的贪心题,选择性价比高的。最后不够的,不必取整。
代码如下:
#include<iostream>#include<iomanip>using namespace std;struct food{ int j; int f; double ac;};int main(){ int M,N,i,j,index; while(cin>>M>>N,N!=-1||M!=-1) { index=0; double sum=0.0; food *p=new food[N]; for(i=0;i<N;i++) { cin>>p[i].j>>p[i].f; p[i].ac=double(p[i].j)/double(p[i].f); } for(i=0;i<N-1;i++) { index=i; food tmp; for(j=i+1;j<N;j++) { if(p[j].ac<p[index].ac) index=j; } tmp=p[i]; p[i]=p[index]; p[index]=tmp; } for(i=N-1;i>=0;i--) { if(M>=p[i].f) { M=M-p[i].f; sum=sum+p[i].j; } else { if(M!=0) { sum=sum+p[i].ac*M; M=0; } } } cout<<setiosflags(ios::fixed)<<setprecision(3)<<sum<<endl; delete []p; } return 0;}
0 0
- ZOJ2109
- zoj2109
- ZOJ2109 FatMouse' Trade,贪心算法
- Windows Server 2012 如何实现多个用户远程桌面登陆?
- Android通过oracle的jdbc驱动直接访问oracle数据库
- 初级排序
- day20 RandomAccessFile 字符编码 正则表达式
- 求最大的数(一)
- zoj2109
- Compile Graphics Magick, Boost, Botan and QT with MinGW64 under Windows 7 64
- 用Jquery获取select下拉框选中的的值
- 一个web版outlook的实现
- MD5 简介
- 【图像算法】NLM降噪
- windows server 2008解决无法PING通问题
- 如何转载CSDN
- 从字节码看Java中for-each循环(增强for循环)实现原理