背包问题

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 3
描述
现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。

输入
第一行输入一个正整数n(1<=n<=5),表示有n组测试数据;
随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10);s表示有s个物品。接下来的s行每行有两个正整数v,w。
输出
输出每组测试数据中背包内的物品的价值和,每次输出占一行。
样例输入
1
3 15
5 10
2 8
3 9
样例输出
65
 #include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct act
{int p;int num;
}arr[100];
bool cmp( act x,act y)
{return x.p>y.p;//贪心思想:总是先装有价值的东西
}
int main()
{int T;scanf("%d",&T);while(T--){int n,m,i;scanf("%d %d",&n,&m);for(i=0;i<n;i++){scanf("%d %d",&arr[i].p,&arr[i].num);}sort(arr,arr+n,cmp);int sum=0;for(i=0;i<n;i++){if(m>arr[i].num)//如果总的容量大于最大价值的总容量 {sum=sum+arr[i].num*arr[i].p;//把最大价值的东西买完; m=m-arr[i].num;//剩下的容量 }else{sum=sum+m*arr[i].p;//如果总的容量小于或等于最大价值的总容量 ,就把背包全都装最大价值的东西 break;//装填完毕跳出循环 }}printf("%d\n",sum);}return 0;
}

悼念512汶川大地震遇难同胞——老人是真饿了

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9973    Accepted Submission(s): 4169

Problem Description
时间:2008年5月16日(震后第4天)
地点:汶川县牛脑寨
人物:羌族老奶奶

【转载整理】牛脑寨是一个全村600多人的羌族寨子,震后几天,这里依然能常常听到隆隆的声音,那是对面山上石头不断滑落的声音。在完成整个突击队的抢修移动基站的任务后,我提着相机开始记录这里的受创情况。
突然,我的视线里出现一个羌族老人,这让我无比的震惊,要知道,那是一个极陡的坡,这个佝偻着腰的老人是怎么艰难地爬上来的?她上来做什么?

老人背后是极陡的坡,她只有一只眼睛有依稀的视力,望着满地废墟,她徘徊了很久。家在哪里,她极力地用很低的视力找寻着。她曾经的家就在旁边,但是满目废墟已经让老人看不出来。她举目远眺,期望那里能看到家的一点点痕迹。原来家就在旁边,左手抓住一个房橼,努力让自己站住,地震过去三天了,她第一次回到曾经的家。

一个倒塌的柜子,里面装着一丝希望,老人很吃力地搬动掩盖在柜子上的薪柴。老人找到一把木匠用的刨子,老泪纵横,或许有哪个逝去的亲人是木匠。睹物思人,逝者已矣。

继续找,一把散碎的挂面出现在我的眼前。她颤颤巍巍地捞起铺满灰尘的挂面,再次流出了眼泪......
看着她仔细地把挂面放进胸前的围腰里,我顿然感觉到,这是老人在得到外援之前赖以生存的口粮了,如果不是交通中断,外部救援进不来,老人家又何必拖着80多岁的躯体,强忍失去亲人的痛苦,重新回到这夺取她亲人生命的废墟,寻找这点点挂面?老人是真饿了......

老人佝偻着腰,低声喃喃地念着那两句话“你们走了,我可怎么活”,拿着那对我们身处城市的人们微不足道的挂面,远去了......

PS: 拍完这组照片后我才知道,5月14号军用运输飞机第一次给汶川空投救援物资就掉在牛脑寨,受灾的村民们没有占为己有,而是汗流浃背地走了两个小时背到山下的县城交给政府。
--------------------------------------------------------------------------------------------------------

对于幸存的灾民来说,最急待解决的显然是温饱问题,救灾部队一边在组织人员全力打通交通,一边在组织采购粮食。现在假设下拨了一定数量的救灾经费要去市场采购大米(散装)。如果市场有m种大米,各种大米的单价和重量已知,请问,为了满足更多灾民的需求,最多能采购多少重量的大米呢?

Input
输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(0<n<=1000,0<m&lt;=1000),分别表示经费的金额和大米的种类,然后是m行数据,每行包含2个整数p和h(1<=p<=25,1<=h&lt;=100),分别表示单价和对应大米的重量。
Output
对于每组测试数据,请输出能够购买大米的最多重量(你可以假设经费买不光所有的大米)。
每个实例的输出占一行,保留2位小数。
Sample Input
      
1 7 2 3 3 4 4

Sample Output
      
2.33

#include<stdio.h>
#include<algorithm>
using namespace std;
struct rice
{int p;int num;
};
bool cmp(rice a,rice b)
{return a.p<b.p;//问题是固定的钱买最多东西,要多买便宜的
}
int main()
{int T;double sum;  //注意 rice str[20000];scanf("%d",&T);while(T--){int n,m,i,j;scanf("%d %d",&n,&m);sum=0;for(i=0;i<m;i++){scanf("%d",&str[i].p);scanf("%d",&str[i].num);}sort(str,str+m,cmp);for(i=0;i<m;i++){if(n>str[i].p*str[i].num){  sum=sum+str[i].num;n=n-str[i].p*str[i].num;}else{sum=sum+n*1.0/str[i].p;//注意 break;}}printf("%.2lf\n",sum);}return 0;
}

nyoj106背包问题为模板解出杭电oj2187悼念512汶川大地震遇难同胞——老人是真饿了相关推荐

  1. 杭电--2187 悼念512汶川大地震遇难同胞——老人是真饿了(贪心)

    本题连接:点击打开链接 悼念512汶川大地震遇难同胞--老人是真饿了 对于幸存的灾民来说,最急待解决的显然是温饱问题,救灾部队一边在组织人员全力打通交通,一边在组织采购粮食.现在假设下拨了一定数量的救 ...

  2. 杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】

    悼念512汶川大地震遇难同胞--老人是真饿了 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  3. HD 2187 悼念512汶川大地震遇难同胞——老人是真饿了 【背包问题】

    悼念512汶川大地震遇难同胞--老人是真饿了 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  4. 杭电 2191 悼念512汶川大地震遇难同胞—珍惜现在,感恩生活

    题目大意 原题链接:HDOJ 2191 悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 解题思路 我本来想用贪心算法的,可是我写好算法,运行几遍试过了是ok的,只是不给AC,我想了好久,脑壳都快头 ...

  5. hdu 2191 悼念512汶川大地震遇难同胞 【多重背包】(模板题)

    题目链接:https://vjudge.net/problem/HDU-2191 悼念512汶川大地震遇难同胞--珍惜现在,感恩生活                                   ...

  6. hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (背包问题)

    悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/ ...

  7. 杭电2186:悼念512汶川大地震遇难同胞——一定要记住我爱你

    Problem Description 当抢救人员发现她的时候,她已经死了,是被垮塌下来的房子压死的,透过那一堆废墟的的间隙可以看到她死亡的姿势,双膝跪着,整个上身向前匍匐着,双手扶着地支撑着身体,有 ...

  8. 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包问题)2191 HDU

    Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品 ...

  9. 杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)

    杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)[模板] 传送门 杭电ACM-LCY算法进阶培训班-专题训练(矩阵快速幂)[模板] 矩阵快速幂模板 Count Problem Descript ...

最新文章

  1. 视觉SLAM学习--图像匹配(CVPR2020 Tutorial)
  2. 按部就班——图解配置IIS5的SSL安全访问
  3. mysql汉字占几个字符_mysql和oracle的一个汉字占几个字符
  4. Oracle提高SQL查询效率where语句条件的先后次序
  5. 一文掌握Redisson分布式锁原理|干货推荐
  6. (三)cmockery中的消息打印以及可变参数相关总结
  7. 这些 iOS 面试基础题目,你都深入了解吗?
  8. minitab学习系列(1)--二项式分布过程能力分析
  9. java 合并两个有序链表
  10. java中 什么意思?比如130
  11. SEO入门:网站站内优化流程
  12. python与sql的区别_2020年入门数据分析选择Python还是SQL?七个常用操作对比!
  13. linux mysql5.7免安装版配置_MySQL5.7免安装版配置
  14. Html id 选择器
  15. 都说要计算卡路里,但到底要怎么算?
  16. hp计算机如何进入启动界面,BIOS使用之HP BIOS篇-惠普电脑怎么进入bios
  17. 最佳均线系统操作依据
  18. documents4j 进行word 转 pdf
  19. python编辑器编程猫_编程猫Python编辑器最新下载_编程猫Python编辑器官方正式版v1.2.0_点点游...
  20. C语言用户自定义标识符的命名规则,c语言中用户标识符的命名规则介绍

热门文章

  1. Texpad 1.8.15 (529) for Mac 中文版 专业的LaTeX的编辑器
  2. 麦克利兰的成就动机理论(转)
  3. 伽利略变换的极限式证明及推论
  4. 毕业一年的计科人,聊一下毕业一年的前端开发心酸历程(很学zha的那种,不喜就走)
  5. 大数据ClickHouse(二十):ClickHouse 可视化工具操作
  6. linux找出1 100被3整除的数,linux中计算100以内能被3整除的数之和,且不超过1000
  7. 【十万个BUG】npx mrm lint-staged报错
  8. 用它来开发“在线Excel”系统,竟如此简单!
  9. 【技巧收集】MATLAB乱码问题的解决
  10. 一个项目经理必备的素质