HDOJ1009 FatMouse' Trade_C++

题目详见http://icpc.njust.edu.cn/Problem/Hdu/1009/

//背包问题:从小到大排序,先考虑性价比高的 

#include<iostream>
#include<algorithm>
using namespace std;
struct node{
double r;
int j;
int f;
}a[1000];
bool cmp(node x,node y)  
{  
    return x.r<y.r;  

int main()
{
int m,n;
while(cin>>m>>n)
{
if(m==-1&&n==-1) break;
double sum=0,pound=m;
for(int i=0;i<n;i++)
{
cin>>a[i].j >>a[i].f;
a[i].r=double(a[i].j)/a[i].f;
}
sort(a,a+n,cmp);
for(int i=n-1;i>=0&&pound>0;i--)
{
if(pound>=a[i].f){
sum+=a[i].j ;
pound=pound-a[i].f ;
}
else{
sum+=a[i].r*pound;
pound=0;
}
}
printf("%.3lf\n",sum);    //lf:double

return 0;

 } 

printf()输出格式总结:printf(“格式控制字符串”, 输出表列)

1.格式替换符

%s
字符串
%f
浮点格式
%c
ASCII字符,即显示对应参数的第一个字符
%d,%i
十进制整数
%o
八进制值
%u
不带正负号的十进制值
%x
十六进制值(a-f)
%X
十六进制值(A-F)
%%
表示%本身

2.转义字

\a
警告字符,通常为ASCII的BEL字符
\b
后退
\f
换页
\n
换行
\r
回车
\t
水平制表符
\v
垂直制表符
\\
表示\本身

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值