随笔分类 -  思想——状态压缩(状压DP/轮廓线DP/DP套DP)

摘要:IV.UOJ#422. 【集训队作业2018】小Z的礼物 考虑直接上minmax容斥。然后,考虑DP求出对于所有的 (|T|,min(T)) 二元组,满足其的 T 个数。又因为 n 很小,我们尝试轮廓线DP。故 阅读全文
posted @ 2021-04-09 14:21 Troverld 阅读(94) 评论(0) 推荐(0) 编辑
摘要:如果有线性代数基础的话会更易理解。推荐配合本人的线性代数学习笔记食用。 线性基是针对某个序列生成的一个集合,它具有以下两条性质: 线性基中任意选择一些数的异或值所构成的集合,等于原序列中任意选择一些数的异或值所构成的集合。 线性基是满足上述条件的最小集合。 有了上面这两条性质,我们便可以得出如下几条 阅读全文
posted @ 2021-04-06 13:22 Troverld 阅读(3209) 评论(3) 推荐(18) 编辑
摘要:VII.软件补丁问题 这题一眼看到那恶心的限制觉得是状压,一看那n=20的范围更觉得是状压,想了网络流3min没想出来,看了标签发现里面居然只有状压一个QaQ!!! 因此便用Dijkstra维护状压进行转移就水过去了QaQ。 鬼知道为什么一道状压会出现在网络流24题里面啊QaQ! 代码: 阅读全文
posted @ 2021-04-06 11:20 Troverld 阅读(35) 评论(0) 推荐(0) 编辑
摘要:XV.小 Y 和恐怖的奴隶主 题解 阅读全文
posted @ 2021-04-02 15:47 Troverld 阅读(112) 评论(0) 推荐(0) 编辑
摘要:IX.[CERC2016]二分毯 Bipartite Blanket 二分图的重要定理:霍尔定理(Hall's Theroem)的应用。 霍尔定理:二分图 V=((S,T),E) 存在完美匹配,当且仅当 \(\forall s\subseteq S,|s|\leq |E_s| 阅读全文
posted @ 2021-04-02 15:13 Troverld 阅读(102) 评论(0) 推荐(0) 编辑
摘要:这里是SOSDP(子集DP)、高维前缀和、FMT(快速莫比乌斯变换)、FWT(快速沃尔什变换)学习笔记。 在接下来的讲解中,我们将会发现前三个东西是本质相同的,而最后一个东西是其扩展。 本博客在半年前就已经有计划去写了,只不过当时题目较少没能如愿。现在攒了几道题,开始动笔。 引入 我们首先来看一道最 阅读全文
posted @ 2021-03-31 15:45 Troverld 阅读(2322) 评论(4) 推荐(11) 编辑
摘要:CLVII.[LOJ#2372]「CEOI2002」臭虫集成电路公司 考虑轮廓线DP。因为有 3×2 的矩形存在,所以要压两行。又因为两行的状态只有可能是 00,01,10 之一,所以压三进制。又因为卡空间,所以要滚动数组。时间复杂度 O(nm3m)。 代码: #incl 阅读全文
posted @ 2021-03-31 15:44 Troverld 阅读(47) 评论(0) 推荐(0) 编辑
摘要:CXLII.CF1158F Density of subarrays 题解 阅读全文
posted @ 2021-03-31 15:22 Troverld 阅读(48) 评论(0) 推荐(0) 编辑
摘要:CXXXV.[ZOJ3989]Triangulation 神题。 这个数据范围很难不让人想到状压DP。于是我们考虑应该怎么设计状态。 考虑一组三角剖分的形态:其必定是在所有点所构成的凸包内部划分出很多三角形。这也就表明,任何一组三角剖分一定包含所有凸包上的边。 我们可以想到一个比较简洁的DP:设 \ 阅读全文
posted @ 2021-03-31 15:08 Troverld 阅读(82) 评论(0) 推荐(0) 编辑
摘要:CXXXIV.[BZOJ3864]Hero meet devil 我们不妨从最trival的LCS问题上想起:暴力的LCS求法是什么? 设 f(i,j) 表示一个串(不妨设为本题中要填的字符串 T)的前 i 位与另一个串(即题目中给出的 S)的前 j 位所构成 阅读全文
posted @ 2021-03-31 15:06 Troverld 阅读(47) 评论(0) 推荐(0) 编辑
摘要:CXXXIII.[HDU6094]Rikka with K-Match 依旧wqs二分。 首先,依据我们之前提到过的一个性质,“凡是可以表示成费用流模型的东西都有凹凸性”,本题也不例外,关于匹配个数的函数是凹的。 凹的就可以wqs二分。于是问题转换为最小权任意匹配。因为 m 只有 4 阅读全文
posted @ 2021-03-31 15:04 Troverld 阅读(119) 评论(0) 推荐(0) 编辑
摘要:CXXVI.[GYM102832J]Abstract Painting 考虑将一个圆心为 (x,0),半径为 R 的圆,转换为 x 轴上线段 [xR,x+R],问题转换为求无交的线段覆盖方案数。 因为所有的圆半径很小(5),所以我们考虑状压位置 i 阅读全文
posted @ 2021-03-31 14:53 Troverld 阅读(91) 评论(0) 推荐(0) 编辑
摘要:CXVII.[清华集训2012]串珠子 如果直接暴力上状压进行计数是会重复计算的;那么怎样不重不漏地计数呢? 我们发现,要求出连通图的数量是比较难的;但是要求出非联通图的数量是比较简单的,因为我们可以祭出套路。 我们设 fi 表示 i 集合中所有图的数量(不管联通与否)。再设 \( 阅读全文
posted @ 2021-03-31 14:35 Troverld 阅读(43) 评论(0) 推荐(0) 编辑
摘要:CXI.[九省联考2018]一双木棋chess 一下子就想到了LXX.[USACO5.5]贰五语言Two Five(可见刷题笔记II),因为同是阶梯型的图样。然后稍微想一想就发现总方案数可以用隔板法证得是\dbinom{n+m}的,代入一看发现才2×105都不到。于是就果断DP了 阅读全文
posted @ 2021-03-31 14:25 Troverld 阅读(53) 评论(0) 推荐(0) 编辑
摘要:IC.[POI2007]ATR-Tourist Attractions 这题我一年半之前初学状压DP时就写了份没卡空间的做法,今天终于A了…… 首先,思路非常简单——我们可以使用Dijkstra预处理出来2k+1中两两点之间的距离以及它们到1n的距离。接着,设f[i,j] 阅读全文
posted @ 2021-03-31 14:06 Troverld 阅读(97) 评论(0) 推荐(0) 编辑
摘要:LCV.[SDOI2008]山贼集团 题解 阅读全文
posted @ 2021-03-30 20:11 Troverld 阅读(42) 评论(0) 推荐(0) 编辑
摘要:XXXV.CF401D Roman and Numbers 思路: 我们设numi表示n中出现了多少个数字i。然后就可以设f[i][j]表示当填入数字的状态是i,且当前数的余数是j时的方案数。则直接转移即可。 复杂度O(18218m)。 代码: #in 阅读全文
posted @ 2021-03-30 19:50 Troverld 阅读(50) 评论(0) 推荐(0) 编辑
摘要:LXVII.[USACO15JAN]Moovie Mooving G 思路1. 设f[i][S]表示在第i场(注意是场,不是部)电影时,已经看了S里面的电影是否合法。 然后贪心地取|S|最小的状态保存。光荣MLE了,21%。 代码: #include<bits/stdc++ 阅读全文
posted @ 2021-03-30 16:44 Troverld 阅读(49) 评论(0) 推荐(0) 编辑
摘要:XLVIII.CF11D A Simple Task 我感觉状压DP是所有DP中最能玩出花的那一种……因为状态保存下来了因此什么奇奇怪怪的限制都能满足。 比如说这题。 一个环可以看作一条首尾相接的路径。我们可以设f[S][j]表示:在集合S中的点构成了一条路径,且路径的起点为j的方案数。 阅读全文
posted @ 2021-03-30 16:17 Troverld 阅读(45) 评论(0) 推荐(0) 编辑
摘要:XLVII.CF906C Party DP是门艺术。 n22一眼状压。但是怎么状压就比较困难,因为同一个f[x]可以代表成千上万种含义。 这里我们采用,设f[x]表示当x集合中所有的点都处于同一个团内的最小代价。 则我们有$f[x \operatornamesta_i]=\ 阅读全文
posted @ 2021-03-30 16:16 Troverld 阅读(42) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示