随笔分类 - 动态规划-状压dp
摘要:题目链接 "cf1242C" 题解 题意:有K个组,每组有若干个数【所有数互异】,现在从每个组取出一个数,然后再将这些数分别放入一个组中,是否存在方案使得操作结束后每个组数字的和相等 最后相等的和是固定的,我们可以求出每个组距离结果的差值,对于这个组每个数,如果要将其取出,那么放入的一定就是这个数再
阅读全文
摘要:题目链接 "BZOJ3836" 题解 显然这是个$NP$完全问题,此题的解决全仗 任意两点间不存在节点数超过10的简单路径 的性质 这意味着什么呢? $dfs$树深度不超过$10$ $10$很小呐,可以状压了呢 我们发现一个点不但收祖先影响,而且受儿子影响,比较难处理 我们就先处理该点及其祖先,然后
阅读全文
摘要:题目链接 "loj2542" 题解 设$f[i][S]$表示从$i$节点出发,走完$S$集合中的点的期望步数 记$de[i]$为$i$的度数,$E$为边集,我们很容易写出状态转移方程 ①若$i \notin S$ $$f[i][S] = \frac{1}{de[i]}\sum\limits_{(i,
阅读全文
摘要:题目链接 "loj2540" 题解 有一个朴素三进制状压$dp$,考虑当前点三种状态:没考虑过,被选入集合,被排除 就有了$O(n3^{n})$的转移 但这样不优,我们考虑优化状态 设$f[i][S]$表示独立集大小为$i$,不可选集合为$S$【要么是已经在独立集中,要么已经被排除了】 那么剩余点都
阅读全文
摘要:题目链接 "BZOJ1495" 题解 观察表格,实际上就是分$A$多和$B$两种情况,分别对应每个点选$A$权值或者$B$权值,所以成对的权值可以分到每个点上 所以每个非叶节点实际对应一个状态,表示子树$AB$数量关系 设$f[i][j][s]$表示节点$i$子树中选了$j$个$A$,其祖先的状态为
阅读全文
摘要:题目链接 "BZOJ4416" 题解 建立序列自动机,即预处理数组$nxt[i][j]$表示$i$位置之后下一个$j$出现的位置 设$f[i]$表示合法字符集合为$i$的最短前缀,枚举最后一个加入的字符进行转移 注意到合法串长度是$O(n^2)$级别的,所以$n 21$直接判掉 C++ includ
阅读全文
摘要:题目链接 "BZOJ2595" 题解 著名的斯坦纳树问题 设$f[i][j][s]$表示点$(i,j)$与景点联通状况为$s$的最小志愿者数 设$val[i][j]$为$(i,j)$需要的志愿者数 有两种转移 一种是自己转移 $$f[i][j][s] = min\{f[i][j][e] + f[i]
阅读全文
摘要:题目链接 "BZOJ3724" 题解 构造矩阵的思路真的没想到 选$x$就不能选$2x$和$3x$,会发现实际可以转化为矩阵相邻两项 $$\begin{matrix}1 & 3 & 9 & 27 & ... \\2 & 6 & 18 & 54 & ... \\4 & 12 & 36 & 108 &
阅读全文
摘要:题目链接 "BZOJ4197" 题解 两个人选的数都互质,意味着两个人选择了没有交集的质因子集合 容易想到将两个人所选的质因子集合作为状态$dp$ $n$以内质数很多,但容易发现$\sqrt{n} \approx 22.3$,这里边的质数只有$8$个,而大于$\sqrt{n}$的质因子只会出现一次,
阅读全文
摘要:题目链接 "BZOJ1559" 题解 考虑到这是一个包含子串的问题,而且子串非常少,我们考虑$AC$自动机上的状压$dp$ 设$f[i][j][s]$表示长度为$i$的串,匹配到了$AC$自动机$j$号节点,且已匹配集合为$s$的方案数 直接在$AC$自动机上转移即可 但是为了防止使用$last$指
阅读全文
摘要:题目链接 "BZOJ5299" 题解 就一个毒瘤卡常题。。写了那么久 设$f[i][s]$表示选了集合$s$中的点,最后一个是$i$,进行转移 要先预处理出两点间的点,然后卡卡常就可以过了 C++ include include include include include include inc
阅读全文
摘要:题目链接 "BZOJ4000" 题解 注意题目中的编号均从$0$开始= = $m$特别小,考虑状压 设$f[i][s]$为第$i$行为$s$的方案数 每个棋子能攻击的只有本行,上一行,下一行, 我们能迅速找出哪些状态是合法的,以及每个状态所对应的上一行攻击位置的并和下一行攻击位置的并 如果两个状态上
阅读全文
摘要:题目 给定n个字符串(S1,S2,„,Sn),要求找到一个最短的字符串T,使得这n个字符串(S1,S2,„,Sn)都是T的子串。 输入格式 第一行是一个正整数n(n include include include include define ULL unsigned long long int d
阅读全文
摘要:1076: [SCOI2008]奖励关 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃)。 宝物一共有n种,系统每次抛出这n种宝
阅读全文

浙公网安备 33010602011771号