01背包||第K大背包
Grit_ICPC
Dielts
展开
-
【leetCode-DP-多维01背包】474. 一和零
现在,假设你分别支配着 m 个0和 n 个1。另外,还有一个仅包含0和1字符串的数组。你的任务是使用给定的m 个0和 n 个1,找到能拼出存在于数组中的字符串的最大数量。每个0和1至多被使用一次。注意:给定0和1的数量都不会超过100。给定字符串数组的长度不会超过600。示例 1:输入: Array = {"10", "0001", ...原创 2020-01-14 16:38:59 · 276 阅读 · 0 评论 -
【leetCode-DP-01背包】416. 分割等和子集
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.数组...原创 2020-01-10 16:19:00 · 203 阅读 · 0 评论 -
【背包九章-01背包】获取最大价值 (附 01背包一维数组优化的时候为什么容量要逆序遍历)
输入4 51 22 43 44 5题目:小明有容量m的袋子,有n个物品 物品有价值和体积,问最多能装多少价值的物品。前两个数为n,m (n为n个物品,m代表有m容量的袋子)01背包 static int[] v; static int[] w; static int n,W; public static int dp01(int [...原创 2019-12-28 13:18:29 · 473 阅读 · 0 评论 -
HDOJ 2639 Bone Collector II(01||第K大背包)
题目大意:给定3个数n,m,k,分别代表有n个骨头,m大的背包,求解第k大的价值。以下两行分别代表,价值和体积。思路:定义两个数组a,b来分别存dp[j-v[i]][t]+p[i],和dp[j][t],其中dp[j][t],代表体积为j的包能装的第t大价值。最后再合并到dp数组中,求解前K大只需要将前K个数求解出来,放入dp中。#include#include原创 2015-09-10 17:05:22 · 553 阅读 · 0 评论 -
SDUTOJ 3307 a(k大背包)
#include#include#include#include#include#include#include#define ll long long#define inf 1000010+10using namespace std;int p[1010],c[1010],a[1010],b[1010];int dp[1010][1010];int main(){原创 2015-09-10 17:21:56 · 456 阅读 · 0 评论 -
PAT L3-001. 凑零钱(背包&路径记录)
韩梅梅喜欢满宇宙到处逛街。现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债。韩梅梅手边有104枚来自各个星球的硬币,需要请你帮她盘算一下,是否可能精确凑出要付的款额。输入样例1:8 95 9 8 7 2 3 4 1输出样例1:1 3 5输入样例2:4 87 2 4 3输出样例2:No So原创 2016-05-20 11:30:18 · 2146 阅读 · 0 评论