Solutioon 这道题利用根号分治可以把复杂度降到n根号n级别. 我们发现当物品体积大与根号n时,就是一个完全背包,换句话说就是没有了个数限制. 进一步我们发现,这个背包最多只能放根号n个物品. 所以我们设dp[i][j]表示放了i个物品,体积为j时的方案数. 转移的话一种是往背包里放一个新物品,或者让背包里所有物品体积加1. 当物品体积小于根号n时,因为物品个数比较少,所以我们可以设计状态为dp[i][j]表示前i个物品,占用j的体积为j时的方案数. 然后我们发现它的同类转移点是在模i的剩…
https://www.zybuluo.com/ysner/note/1285358 题面 小\(Y\)有一个大小为\(n\)的背包,并且小\(Y\)有\(n\)种物品. 对于第\(i\)种物品,共有\(i\)个可以使用,并且对于每一个\(i\)物品,体积均为\(i\). 求小\(Y\)把该背包装满的方案数为多少,答案对于\(23333333\)取模. 定义两种不同的方案为:当且仅当至少存在一种物品的使用数量不同. \(n\leq10^5\) 解析 这个背包问题让我耳目一新啊. \(idea\)…
题目传送门 题意:给出$N$表示背包容量,且会给出$N$种物品,第$i$个物品大小为$i$,数量也为$i$,求装满这个背包的方案数,对$23333333$取模.$N \leq 10^5$ $23333333=17 \times 1372549$竟然不是质数性质太不优秀了(雾 直接跑背包$O(N^2)$,于是咱们考虑挖掘性质.分开计算 发现当$i < \sqrt{N}$时就是一个多重背包,用单调队列优化到$O(N \sqrt{N})$ 而当$i \geq \sqrt{N}$时,选中物品的数量不会超…
link 吐槽: 好吧开学了果然忙得要死……不过为了证明我的blog还没有凉,还是跑来更一波水题 题意: 有n种物品,第i种体积为i,问装满一个大小为n的背包有多少种方案? $n\leq 10^5.$ 做法: 这种题一看就很想按根号分类是不是…… 设阈值大小为$m=\sqrt n$,对于体积$\leq m$的所有物品,直接跑多重背包: f[i][j]表示前i个物品,体积和为j的方案数,$f[i][j]=\sum f[i-1][j-ki],k\in [0,i]$. 记录sum[x]表示$\sum…
正解:背包 解题报告: 先放传送门! 好烦昂感觉真的欠下一堆,,,高级数据结构知识点什么的都不会,基础又麻油打扎实NOIp前的题单什么的都还麻油刷完,,,就很难过,,,哭辣QAQ 不说辣看这题QwQ! 首先注意到当i>=√n时相当于是有无穷个的 可以想到对不同的物品数量进行分类讨论 对于i<√n,就最普通的背包,f[i][j]:第i个物品已装容量为j的方案数 转移就是f[i][j]=∑f[i-1][j-k*i](0<=k<=i)(这个显然可以降维变成f[i]:容量为i的方案数 然后…
题意 题目链接 Sol 不会做啊AAA.. 暴力上肯定是不行的,考虑根号分组 设\(m = \sqrt{n}\) 对于前\(m\)个直接暴力,利用单调队列优化多重背包的思想,按\(\% i\)分组一下.复杂度\(O(n\sqrt{n})\) 对于后\(m\)个,此时每个物品没有个数的限制,换一种dp方法 设\(g[i][j]\)表示用了\(i\)个物品,大小为\(j\)的方案数. 转移的时候有两种方案 把当前所有物品大小\(+1\),\(g[i][j + i] += g[i][j]\) 新加入一…
[LOJ6089]小Y的背包计数问题(动态规划) 题面 LOJ 题解 神仙题啊. 我们分开考虑不同的物品,按照编号与\(\sqrt n\)的关系分类. 第一类:\(i\le \sqrt n\) 即需要考虑所有的情况,那么设\(f[i][j]\)表示前\(i\)个物品装了体积\(j\)的方案数. 显然\(f[i][j]=\sum_{k=1}^i f[i][j-k*i]\)转移过来,那么按照\(i\)分剩余类,前缀和转移即可. 这一部分的复杂度是\(O(n\sqrt n)\) 第二类:\(i\ge…
LOJ #6089. 小 Y 的背包计数问题 神仙题啊orz. 首先把数分成\(<=\sqrt n\)的和\(>\sqrt n\)的两部分. \(>\sqrt n\)的部分因为最多选\(\sqrt n\)个数,所以数量就没有卵用了.然后就用完全背包的一个常见套路(?)可以对一个空的序列整体+1或者在最左边加上一个\(\sqrt n+1\),这个操作序列和完全背包的选择方案一一对应.感性理解一下是对的emmmm,复杂度\(O(n\sqrt n)\) \(<=\sqrt n\)的部分只…
题面传送门 题意: 求有多少个数列 \(x\) 满足: \(\sum x_i=n\) \(x_i\geq x_{i+1}\) 答案对 \(p\) 取模. ...你确定这叫"入门"组? 一眼完全背包问题,然而 \(n^2\) 是根本过不了的,于是我便在那里打表找规律,结果毛用也没有( 考虑根号分治,令 \(m=\lfloor\sqrt{n}\rfloor\). 对于 \(i\leq m\) 跑一遍完全背包. 对于 \(i>m\),不难发现我们顶多会选 \(m\) 个这样的 \(i\…
题目传送门 题目大意 给出 \(n\),第 \(i\) 个数有 \(i\) 个,问凑出 \(n\) 的方案数. \(n\le 10^5\) 思路 呜呜呜,傻掉了... 首先想到根号分治,分别考虑 \([1,\sqrt n]\) 以及 \([\sqrt n+1,n]\). \([1,\sqrt n]\) 不难看出这部分可以直接 dp,设 \(f_{i,j}\) 为前面 \(i\) 种物品选出重量为 \(j\) 的方案数,可以得到转移式: \[f_{i,j}=f_{i-1,j}+f_{i,j-i}-…