![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
——01背包问题(动态规划)
01背包问题(动态规划)集锦
重剑DS
学的越多,越觉无知
展开
-
P1049 装箱问题(C++)---01背包(动态规划)解题
展开题目描述有一个箱子容量为VV(正整数,0 \le V \le 200000≤V≤20000),同时有nn个物品(0<n \le 300<n≤30,每个物品有一个体积(正整数)。要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入格式11个整数,表示箱子容量11个整数,表示有nn个物品接下来nn行,分别表示这nn个物品的各自体积输出格式11个整数,表示箱子剩余空间。输入输出样例输入 #12468312797输.原创 2020-10-11 21:02:44 · 912 阅读 · 0 评论 -
P1048 采药(C++)---01背包(动态规划)解题
题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?输入格式第一行有22个整数TT(1 \le T \le 10001≤T≤...原创 2020-10-11 21:00:39 · 501 阅读 · 0 评论 -
494. 目标和(C++)---深度优先搜索 和 01背包动态规划 解题
给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号+和-。对于数组中的任意一个整数,你都可以从+或-中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3一共有5种方法让最...原创 2020-10-11 20:05:22 · 185 阅读 · 0 评论 -
474. 一和零(C++)---01背包(动态规划)解题
题目详情在计算机界中,我们总是追求用有限的资源获取最大的收益。现在,假设你分别支配着 m 个0和 n 个1。另外,还有一个仅包含0和1字符串的数组。你的任务是使用给定的m 个0和 n 个1,找到能拼出存在于数组中的字符串的最大数量。每个0和1至多被使用一次。示例 1:输入: strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3输出: 4解释: 总共 4 个字符串可以通过 5 个 0 和 3...原创 2020-10-11 15:10:04 · 149 阅读 · 0 评论 -
416. 分割等和子集(C++) --- 01背包动态规划解题
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.来源:力扣(LeetCode)链接:https://leetcode-cn.com/..原创 2020-10-11 13:37:31 · 333 阅读 · 0 评论