贪心练习——肥鼠的交易
来源:互联网 发布:网络类型设置方法 编辑:程序博客网 时间:2024/06/09 17:19
题目描述:这是属于部分背包问题,一老鼠有M斤猫粮,要拿去和猫交换鼠粮,不同的猫咪兑换标准不一样,求老鼠用自己的猫粮如何能尽可能的换到更多鼠粮?输入数据包括多组样例,第一行是两个整数,M和N,M代表鼠拥有的猫粮有多少斤,N表示有N只猫同意交换。若N==M==-1,结束输入。接下来输入N组数据,每组数据包括两个整数,j和f 。代表猫愿意用f斤猫粮换j斤鼠粮。结果保留小数点三位。
测试样例:
输入:
5 3
7 2
4 3
5 2
20 3
25 18
24 15
15 10
-1 -1
输出:
13.333
31.500
代码实现:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int j[9999],f[9999];
double ave[9999];
int i,m,n,k,tem;
double leftm,sum,largeave;
while(1){
scanf("%d %d",&m,&n);
if(m==-1&&n==-1) break;
sum=0;
leftm=m;
for(i=0;i<n;i++){
scanf("%d %d",&j[i],&f[i]);
ave[i]=(double)j[i]/(double)f[i];
}
while(leftm!=0){
largeave=ave[0];
for(k=0;k<n;k++){
if(ave[k]>=largeave&&ave[k]>0){
largeave=ave[k];
tem=k;
}
}
if(leftm>=f[tem]){
sum=sum+j[tem];
leftm=leftm-f[tem];
ave[tem]=0;
}
else if(leftm<f[tem]){
sum=sum+leftm*ave[tem];
leftm=0;
}
}
printf("%.3lf\n",sum);
}
system("pause");
}
- 贪心练习——肥鼠的交易
- HDOJ1009 肥鼠的交易
- 【贪心】老鼠和猫的交易
- 偶尔勤奋的肥猫——OS时间片轮转调度基本算法
- 2016春季练习——贪心
- 2016春季练习——贪心
- 练习1——贪心算法总结
- 2016春季练习——二分+贪心
- 第六周练习计划——贪心
- 《肥仔C日记——7月2日》
- 《肥仔C笔记——7月3日》
- 《肥仔C笔记——7月6日》
- uva 11054 Gerovia的酒交易(贪心+树状数组)
- uva 11054 Gergovia的酒交易 等价转化/贪心
- ACM--猫鼠交易--贪心--HDOJ 1009--FatMouse' Trade
- ACM--猫鼠交易--HDOJ 1009--FatMouse' Trade--贪心
- 肥肥
- 高频交易算法研发心得—最稳妥的低风险交易策略
- Tomcat7部署项目的四种方法
- Linux Kernel and Android 休眠与唤醒
- ios 取到button的文字位置
- MFC - 复制内容到剪切板
- Codeforces Round #139 (Div. 2)C Barcode DP
- 贪心练习——肥鼠的交易
- c语言基础类型
- SQL学习点滴。
- Android中自定义属性的使用
- PL/SQL 异常
- Android下载地址
- linux 如何显示一个文件的某几行(中间几行)
- c语言内存分配
- 输入周期数并判断其循环周期