(死亡) 本文部分参照背包九讲(链接点这里) 先看三道题: 01背包,完全背包,混合背包 请记住这个题面:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。 有相似题面的一系列一种组合优化的NP完全问题(附百度百科)就是背包问题。 背包的种类很多, ...
分类:
其他好文 时间:
2019-10-07 11:10:09
阅读次数:
100
"Luogu P1450 [HAOI2008]硬币购物 完全背包+容斥定理" 【Problem Description】 略 【Solution】 上述题目等价于:有$4$种物品,每种物品有$d_i$个,且每种物品的体积为$c_i$,问有多少种方法装满容量为$s$的背包?可以很容易想到跑多重背包即可 ...
分类:
其他好文 时间:
2019-10-06 18:58:07
阅读次数:
82
class Solution { private int w[]; private int dp[]; public int numSquares(int n) { w=new int[(int) (Math.sqrt(n)+1)]; dp=new int[n+1]; for(int i=1;i<=... ...
分类:
其他好文 时间:
2019-10-06 14:52:41
阅读次数:
72
[多校联考2019(Round 5)]蓝精灵的请求(二分图染色+背包) 题面 在山的那边海的那边住着 n 个蓝精灵,这 n 个蓝精灵之间有 m 对好友关系,现在蓝精灵们想要玩一个团队竞技游戏,需要分为两组进行,且每一组中任意两个蓝精灵都是好友。另外,他们还想要最小化每组蓝精灵内部的好友关系数之和。蓝 ...
分类:
其他好文 时间:
2019-10-06 11:35:05
阅读次数:
84
package com.array; import java.util.Scanner; import java.util.Vector; class partionArray{ private Vector<Integer>arr=new Vector<Integer>(); private in... ...
分类:
编程语言 时间:
2019-10-05 20:04:24
阅读次数:
81
1 //n件物品,m种关系,(有关系的2个不能在同一组) 2 //把所有物品分为2组,希望最后2组的差值尽可能小,输出较大者 3 /* 4 二分图涂色+可行性(01)背包 5 dp[i] =1表示 最后差值为i可行 6 建图后,对于每个连通分量记录差值,来求所有的可行 7 */ 8 #include... ...
分类:
其他好文 时间:
2019-10-05 18:04:11
阅读次数:
111
Luogu P5020 货币系统 先把$a$数组排一下序。 从最小的数开始选,显然最小这个数必须选,然后利用完全背包的思想,从$a_i$到最大值筛选一遍,将可以组成的打上标记。 在判断后面的数字时,如果已经被标记过了,就不再选,没有被标记过就标记一下,再筛选一次数(即再做一次完全背包)。 cpp i ...
分类:
其他好文 时间:
2019-10-05 16:16:26
阅读次数:
372
package dp; class dpArray{ private int dp[][]; private int w[]; private int v[]; private int memo[]; public int res(){ for(int i=1;i<=4;++i){ for(int ... ...
分类:
编程语言 时间:
2019-10-05 14:42:19
阅读次数:
78
class Solutionx{ private int memo[][]; private int w[]; private int v[]; public int bestValue(int Index,int c){ if(Index =w[Index]){ res=Math.max(res,... ...
分类:
编程语言 时间:
2019-10-05 11:03:03
阅读次数:
92
#include #include using namespace std; int w[5] = { 0, 2, 3, 4, 5 }; //商品的体积2、3、4、5 int v[5] = { 0, 3, 4, 5, 6 }; //商品的价值3、4、5、6 int bagV = 8; //背包大..... ...
分类:
其他好文 时间:
2019-10-05 01:01:04
阅读次数:
95