解题思路:

首先做本题,要清楚题意的要求。

1.读取数据到结构体数组中,然后按其价值降序(价值最大的放在最上面)。

2.比较给定的M (包裹容量),如果大于当前宝物的体积,则计算总价值+= 宝物的总价值( 体积*价值),然后将当前总容量=总容量 - 已消耗宝物的体积

3.如果当前剩余容量,不大于宝物体积,则【假设宝贝可以分割,分割后的价值和对应的体积成正比】,总价值+=m*当前宝物的价值。

4. 输出总价值

AC 代码:

#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int val,v;
} B;
int cmp(const void *a,const void *b)
{
B *a1=(B *)a;
B *b1=(B *)b;
return b1->val - a1->val;
}
int main(void)
{
int i,m,n,sum;
B b[110];
while(scanf("%d",&m)!=EOF,m)
{
scanf("%d",&n);
sum=0;
for(i=0; i<n; i++)
scanf("%d%d",&b[i].val,&b[i].v);
qsort(b,n,sizeof(b[0]),cmp);
for(i=0; i<n; i++)
{
if(m>b[i].v)
{
sum+=b[i].v*b[i].val;
m-=b[i].v;
}
else
{
sum+=m*b[i].val;
break;
}
}
printf("%d\n",sum);
}
return 0;
}

  

最新文章

  1. SQL Server快捷键
  2. https基础流程
  3. Spell-DBC
  4. Birthday-24
  5. RTX2010服务器端的主要通信端口有哪些?
  6. 在做excel导出时如何将excel直接写在输出流中
  7. MPI编程简单介绍
  8. oracle函数、包、变量的定义和使用、重点”结构体和数组”
  9. Linux下常用I/O模型
  10. jSP的3种方式实现radio ,checkBox,select的默认选择值。
  11. HDU 1827 Summer Holiday(Tarjan缩点)
  12. HTML+CSS水平垂直居中
  13. 【Python】启动迅雷下载
  14. MySQL 无法连接
  15. javascript 编码规范
  16. input 内容改变的触发事件
  17. AXI总线(转)
  18. Linux常用命令笔记总结(待补充)
  19. [转][ASP.net]后台页面刷新
  20. ubuntu emacs的安装

热门文章

  1. linux patch 格式与说明(收录)
  2. bzoj roll题器(Py大法好)
  3. ORACLE SELECT INTO NO_DATA_FOUND问题
  4. jQuery使用ajax跨域获取数据
  5. Easyui Combotree问题及其相关
  6. timeSeries db之:使用Metrics监控应用程序的性能 (zz)
  7. Jenkins进阶系列之——06FTP publisher plugin插件下载(支持绝对路径)
  8. 【MPI学习3】MPI并行程序设计模式:不同通信模式MPI并行程序的设计
  9. 【hello,world 也打脸】记storm-starter在某知名IDE下的悲催调试经历
  10. WPF开发时光之痕日记本——终于完工了。。晒晒截图(三)(已上传安装包)