这是一道DP(背包)水题。

题目问剩余空间最小,那么意思为装得最多。拿到题后便习惯了用贪心去思考,发现局部并不是全局最优,所以考虑dp。但是发现01背包的价值呢?(这个错误的想法就显示了我对dp理解得不透彻)。而其实这些题的本源都在于写转移方程,于是便想了出来dp[j]=max(dp[j],dp[j-weight[i]]+weight[i]),用dp[j]来表示当背包容量为j时最大可以装多少。另外,要注意倒序,因为是类01。

1.不要光想套模板,要自己写出状态转移方程

2.贪心是一种方法,并不是每一个题都要用到

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define N 100001
using namespace std;
int dp[N];
int weight[N];
int n;
int T;
int main(){//让T最小 :装的多
cin>>T;
cin>>n;
for(int i=;i<=n;i++){
cin>>weight[i];
}
for(int i=;i<=n;i++){
for(int j=T;j>=weight[i];j--){
dp[j]=max(dp[j],dp[j-weight[i]]+weight[i]);
}
}
cout<<T-dp[T];
return ;
}

P1049装箱问题的更多相关文章

  1. 洛谷 P1049 装箱问题

    \[传送门在这呢!!\] 题目描述 有一个箱子容量为\(V\)(正整数,\(0 \le V \le 20000\)),同时有\(n\)个物品(\(0<n \le 30\),每个物品有一个体积(正 ...

  2. P1049 装箱问题

    装箱问题 题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使 ...

  3. 洛谷 P1049 装箱问题(01背包)

    一道水题,但看到好久没有发博客了,再一看是一道noip普及组t4,就做了. 题目链接 https://www.luogu.org/problemnew/show/P1049 解题思路 一道裸的01背包 ...

  4. [贪心]P1049 装箱问题

    装箱问题 题目描述 有一个箱子容量为V(正整数,0≤V≤20000),同时有n个物品(0<n≤30),每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. ...

  5. (01背包 dp)P1049 装箱问题 洛谷

    题目描述 有一个箱子容量为VV(正整数,0≤V≤20000),同时有nn个物品(0<n≤30,每个物品有一个体积(正整数). 要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入 ...

  6. 洛谷 P1049 装箱问题【正难则反/01背包】

    题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余 ...

  7. 洛谷P1049装箱问题

    一句话刚刚的题会了,这题能不会么. #include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>> ...

  8. [LUOGU] P1049 装箱问题

    题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余 ...

  9. 洛谷P1049 装箱问题

    //01背包 价值等于体积 求所剩最小体积 #include<bits/stdc++.h> using namespace std; ; ; int c,n,v[maxn],f[maxv] ...

随机推荐

  1. redis主从+keepalived实现高可用技术

    Redis是我们当下比较流行使用的非关系数据库,可支持多样化的数据类型,多线程高并发支持,redis运行在内存拥有更快的读写.因为redis的表现如此出色,如何能保障redis在运行中能够应对宕机故障 ...

  2. Winserver-禁止程序启动

    注册表限制程序启动 经测试,可以阻止手动启动,但在job中还是会有启动的进程,这个待确定. run→regedit 添加程序只写exe名就行 手动不能运行了

  3. 基于STM32的CRC校验说明

    ///***************************************************************************** //下面是test.c里面的函数 // ...

  4. SQL基础测试

    SQL 测验 结果:20/20 您的回答: 1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT ...

  5. Mac 找文件或文件夹,以及开启其他程序,截图快捷键

    Mac 图形化界面对操作惯 Win 的人来说比较奇怪. 有一组超级有用的快捷键,control + 空格 按下后会出现一个搜索框,输入计算机上任何你想要找的资源即可打开. 截取全屏:快捷键(Shift ...

  6. json 的简单应用

    今天做爬虫时的一点盲区 :字符串, 字典,写到同一个文件中.难以利用!比如这样的数据:str = “hi,budy. i like 52pojie!”dirt = {“陈墨”:["男&quo ...

  7. Android 内存泄漏优化总结

    1,验证是否为汉字 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3 ...

  8. 【TIL】today i learned

    20191115 JSON解析网站 https://www.json.cn/    方便简洁,左侧放JSON表达式,右侧自动解析 联系英文盲打网站 https://www.keybr.com/  字母 ...

  9. java8 stream初试,map排序,list去重,统计重复元素个数,获取map的key集合和value集合

    //定义一个100元素的集合,包含A-Z List<String> list = new LinkedList<>(); for (int i =0;i<100;i++) ...

  10. hook C++

    Intercepting Calls to COM Interfaces(hook com接口) 通过COM组件IFileOperation越权复制文件 代码注入之远程线程篇 使用VC++通过远程进程 ...