Description

约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草. 顿因有H(1≤H≤5000)包干草,每一包都有它的体积Vi(l≤Vi≤C).约翰只能整包购买,他最多可以运回多少体积的干草呢?

Input

第1行输入C和H,之后H行一行输入一个Vi.

Output

最多的可买干草体积.

Sample Input

7 3 //总体积为7,用3个物品来背包

2

6

5

The wagon holds 7 volumetric units; three bales are offered for sale with

volumes of 2, 6, and 5 units, respectively.

Sample Output

7 //最大可以背出来的体积


这题没什么好说的了,一个裸的01背包,设f[i]代表能否凑出体积i,f数组为bool类型,然后转移就是f[i]=f[i]||f[[i-x];

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 0x7f7f7f
typedef long long ll;
typedef unsigned int ui;
typedef unsigned long long ull;
using namespace std;
inline int read(){
int x=0,f=1;char ch=getchar();
for (;ch<'0'||ch>'9';ch=getchar()) if (ch=='-') f=-1;
for (;ch>='0'&&ch<='9';ch=getchar()) x=(x<<3)+(x<<1)+ch-'0';
return x*f;
}
inline void print(int x){
if (x>=10) print(x/10);
putchar(x%10+'0');
}
const int N=1e4;
bool f[N+10];
int main(){
int n=read(),m=read();
f[0]=1;//什么都不选是成立的
for (int i=1;i<=m;i++){
int x=read();
for (int j=n;j>=x;j--) f[j]=f[j]||f[j-x];
//f[j]从f[j]转移过来代表不选x,从f[j-x]转移过来代表选x,j一定要从n开始倒着枚举,否则x会被选很多次(给不会DP的小朋友写的注释)
}
while (!f[n]) n--;//找到一个可行的最大的值
printf("%d\n",n);
return 0;
}

最新文章

  1. ORACLE 迁移MYSQL 随笔
  2. 网络热恋之XML解析
  3. java 15 - 8 集合框架(并发修改异常的产生原因以及解决方案)
  4. Jquery easyui treegrid实现树形表格的行拖拽
  5. logstash 安装WARNING: SSLSocket#session= is not supported
  6. Go语言之defer
  7. 常用的CSS清除浮动的方法优缺点分析(个人学习笔记)
  8. 提醒录入BOM更改原因
  9. 基于visual Studio2013解决算法导论之027hash表
  10. zabbix metrics
  11. 学习笔记——门面模式Facade
  12. Hadoop和MapReduce初识
  13. Visual Studio2010重新安装后,冲突问题
  14. jquert 判断checkbox 是否选中
  15. kubernetes系列03—kubeadm安装部署K8S集群
  16. Android Studio下添加assets目录
  17. ztree-持续更新中
  18. Python之生成器及内置函数篇4
  19. [ML学习笔记] XGBoost算法
  20. Dubbo阅读笔记——高级功能

热门文章

  1. Activiti-5.3工作流引擎-源码解析(流程文档解析)
  2. JAVA原始的导出excel文件,快捷通用 方便 还能够导出word文档哦
  3. CentOS5 忘记root密码的解决办法
  4. C++MFC编程笔记day06 MFC向导、MFC画图类使用
  5. Android开发——本地验证码的简易实现
  6. 关于Scrum
  7. 三. 200多万元得到的创业教训--创业并不须要app
  8. UVa 401 Palindromes(镜像回文字符串)
  9. 嵌入式开发之davinci--- 8148/8168/8127 中的图像缩放sclr、swms之后出现图像视频卡顿、屏幕跳跃的问题
  10. oracle 12c 13姨