急!灾区的食物依然短缺! 
为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。 
请问:你用有限的资金最多能采购多少公斤粮食呢?

后记: 
人生是一个充满了变数的生命过程,天灾、人祸、病痛是我们生命历程中不可预知的威胁。 
月有阴晴圆缺,人有旦夕祸福,未来对于我们而言是一个未知数。那么,我们要做的就应该是珍惜现在,感恩生活—— 
感谢父母,他们给予我们生命,抚养我们成人; 
感谢老师,他们授给我们知识,教我们做人 
感谢朋友,他们让我们感受到世界的温暖; 
感谢对手,他们令我们不断进取、努力。 
同样,我们也要感谢痛苦与艰辛带给我们的财富~

Input

输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=100),分别表示经费的金额和大米的种类,然后是m行数据,每行包含3个数p,h和c(1<=p<=20,1<=h<=200,1<=c<=20),分别表示每袋的价格、每袋的重量以及对应种类大米的袋数。

Output

对于每组测试数据,请输出能够购买大米的最多重量,你可以假设经费买不光所有的大米,并且经费你可以不用完。每个实例的输出占一行。

Sample Input

1
8 2
2 100 4
4 100 2

Sample Output

400

思路:典型的多重背包,二进制思路转化为01背包就解决了。

源码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int Max(int a,int b){return a>b?a:b;
}
struct Node{int w;int v;
}node[2010];
int dp[1010];
int main(){int T;cin>>T;while (T--){int n,m;cin>>n>>m;int index=0;int w,v,k;for(int i=1;i<=m;i++){int c=1;cin>>w>>v>>k;while(k-c>0){k-=c;node[++index].w=c*w;node[index].v=c*v;c*=2;}node[++index].w=k*w;node[index].v=k*v;}for(int i=0; i<=n; i++) dp[i]=0;for(int i=1;i<=index;i++){for(int j=n;j>=node[i].w;j--)dp[j]=Max(dp[j],dp[j-node[i].w]+node[i].v);}cout<<dp[n]<<endl;}return 0;
}

急!灾区的食物依然短缺!(找不到原题出处只能这样了.....)相关推荐

  1. 依赖包存在,但是仍依然报找不到包的问题

    idea运行项目问题记录及解决方案 依赖包存在,但是仍依然报找不到包的问题 皆大欢喜 依赖包存在,但是仍依然报找不到包的问题 解决方案一: clean 项目,重新运行 解决方案二:清缓存 以上两种方法 ...

  2. 帮我找一下JAVA_急!!!帮我找出程序中的错误

    2018-03-31 对象不支持此属性或方法.我该怎末办? 收到的邮件是乱码应该如何处理 1>一般来说,乱码邮件的原因有下面三种:1.由于发件人所在的国家和地区的编码和中国大陆不一样,比如台湾香 ...

  3. hdu3786 找出直系亲属 水题

    题意: 找出直系亲属 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 【CodeForces - 764A】Taymyr is calling you (找规律,水题)

    题干: Comrade Dujikov is busy choosing artists for Timofey's birthday and is recieving calls from Taym ...

  5. linux系统修复找不到原安装,Linux 系统用安装盘来修复GRUB 详解

    常用恢复MBR的办法还有一种是用升级系统的办法,这种办法经过验证,是极不可 靠的.我们经过近二三十次的实践,证明效果几乎很少,这个办法用于没有安装 GRUB的还是可行的.如果已经把GRUB安装上,后来 ...

  6. NSWOJ-zlh找男朋友(水题)

    题目描述 zlh找不到女朋友很苦恼,一天晚上看着他的室友,突然有了一个大胆的想法. 他室友给他 n个数,你的任务是告诉zlh里面有几个数是3的倍数. 输入 第一行输入一个n(1<=n<=1 ...

  7. Leetcode刷题五遍还没offer - 听我分析为什么找工作光刷题没用

    一亩三分地就业求职版里,有位同学发帖说: LZ从14年秋季入学开始刷题,一门心思要找份好工作,到现在leetcode已经刷过五遍,都做好详尽的总结,看过geeksforgeeks里面一半的topic. ...

  8. LeetCode 207. Course Schedule--有向图找环--面试算法题--DFS递归,拓扑排序迭代--Python

    题目地址:Course Schedule - LeetCode There are a total of n courses you have to take, labeled from 0 to n ...

  9. hdu 1005 1021 递归超限 找规律 // 只要看题中n较大都是有规律的

    因为n>1000000000所以用递归 数组超限, 由递归函数f(n)=(A*f(n-1)+B*f(n-2))%7; 因为是除7的余数 因次一共有7*7=49种情况, 以后的值都和之前的对应相等 ...

最新文章

  1. 原创 | 入门“大数据”,你需要通读这18本书
  2. elasticsearch给IK分词器添加自定义词汇
  3. 「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
  4. c语言位运算符的使用_C语言程序使用位运算符检查给定数字是否为回文
  5. 这是300年后的人类生活!你相信吗?
  6. Protocol handler start failedCaused by: java.net.SocketException: Permission denied
  7. Oracle PL/SQL之NEXT_DAY - 取得下一个星期几所在的日期
  8. spring 属性注入
  9. 浪潮服务器怎么获取cpu信息,浪潮获取cpu、内存、硬盘等信息(redfish协议+restfull协议)...
  10. 方差分析软件_Minitab统计软件入门(一)
  11. 如何修改VS编译器的背景图:快来换属于你的背景图!!!!!
  12. linux怎么修改数据库字段长度,Postsql 修改字段长度和类型
  13. html开始游戏如何打开,dnf游戏进不去 点击开始-运行,输入CMD
  14. 踏雪点圣火,冰雕刻五环!揭秘全球刷屏的冬奥开幕式黑科技
  15. 自监督学习经典之作:DINO
  16. 基于Android的背单词软件【源码+文档+答辩PPT】
  17. win11更新特别慢怎么办
  18. 备份 二进制备份MySQLdump 增量备份 xtrabackupex
  19. 一次性修改多张图片尺寸
  20. 【OPENCV_系列电子PDF图书连载】计算机视觉从入门到精通完整学习路线专栏

热门文章

  1. 一直都以为阿里的程序员待遇是最好的,结果真正的土豪竟然是……
  2. 【Windows Server 2019】路由服务的配置和管理
  3. 期权学习之常见收益结构
  4. IDEA运行卡顿,网页刷新不及时,网页报404错误以及Ajax收不到servlet返回的数据(已解决)
  5. Redis-6.2.* 版本配置文件redis.conf详解
  6. grafan 6.3.x pannel研究
  7. 2021总结2022规划
  8. npm cb() never called!和 Error: getaddrinfo ENOTFOUND registry.npmjs.com registry.npmjs.com:443
  9. 【阅读提要】《电子设备热设计及分析技术》_余建祖_1
  10. 人工智能 漆桂林_2020年CCF专委活动计划(预通过)