随笔分类 - 动态规划——背包
摘要:A.背包 problem 有$n$个物品,价值都小于等于13,Q次操作,每次操作给出$l,r$,问区间$[l,r]$内可以取任意多个物品,对于$k=0,1,2,...12$求出价值和$m% 13=k$的方案数对2取模。 然后将第l个物品和第i个物品价值和加1. \(n\le 8\times 10^6
阅读全文
摘要:"题目链接" solution 有两种解法。 解法一:分组背包,相当于有3种物品,分别有$n_1,n_2,n_3$个,重量分别是$1,2,5$。问不能组成的最小的重量。 用$f[i]$表示$i$这个重量能不能组成。 然后将分组背包拆成01背包做。 枚举一下重量,看是否能组成。 解法二:生成函数。用$
阅读全文
摘要:"题目链接" solution 此题有两种解法。 第一种解法就是裸的完全背包。 就相当于有n种物品,第i种物品的重量是i。每种物品有无限多个,问恰好填满一个容量为n的背包的方案数。 第二种解法是生成函数。 用生成函数$(1+x+x^1+x^2+...)$表示拆分出的$1$的数量。用$(1+x^2+x
阅读全文
摘要:"题目链接" problem 给出一棵树,每个点有点权,每条边有边权。0号点为根,每个点的代价是这个点的点权$\times$该点到根路径上的边权和。 现在可以选择最多K个点。使得每个点的代价变为:这个点的点权$\times$改点到最近的被选中的一个祖先的边权和。 问所有点的代价和最小为多少。 sol
阅读全文
摘要:题目链接 思路 乍一看这是一个01背包的裸题。但是数据范围$10^5$是无法承受的。 但是发现$p_i$和$w_i$只有10,也就是说最多只有100种物品。所以可以对他们进行分组。然后用二进制优化多重背包来做。 二进制优化多重背包 多重背包是指限定物品数量的一种背包问题。 多重背包可以转化为01背包
阅读全文
摘要:题目链接 http://noi.openjudge.cn/ch0206/9289/ 描述 Bessie was poking around the ant hill one day watching the ants march to and fro while gathering food. Sh
阅读全文