
状压dp
stargazer.
夜を穿つの
展开
-
【LOJ #6433】「PKUSC2018」最大前缀和(状压DP)
传送门也挺傻逼的nnn很小考虑如果暴力计算每种前缀的集合为最大前缀和的答案需要满足剩下的组成的任意前缀和都小于0g[s]g[s]g[s]表示集合sss排列出来任意前缀和都小于0的方案数类似考虑一个集合作为最大前缀和把这个序列反过来则一定不存在前缀和小于0也可以类似的定义一个fff来做注意最大前缀和不能不选,所以fff如果集合的和小于0也是合法的,只是不能继续转移注意一段和为0...原创 2019-12-18 21:12:47 · 195 阅读 · 0 评论 -
【LOJ #2540】「PKUWC2018」随机算法(状压DP)
传送门设f[i][s]f[i][s]f[i][s]为考虑排列里第iii个点,当前独立集为sss的方案数暴力枚举下一个点转移即可可以加入独立集的一定还没考虑过复杂度O(n22n)O(n^22^n)O(n22n)但是转移次数很少跑的飞快#include<bits/stdc++.h>using namespace std;#define cs const#define re...原创 2019-11-07 22:08:50 · 209 阅读 · 0 评论 -
【LOJ #2290】「THUWC 2017」随机二分图(状压DP)
传送门暴力的做法是设f[s1][s2]f[s1][s2]f[s1][s2]为左右匹配状态转移考虑对于第二类拆成两条独立的,出现概率为50%50\%50%的边但是一起出现的概率少了25%25\%25%可以再加一个一起出现的25%25\%25%的情况第三类类似加一个一起出现为−25%-25\%−25%的情况然后暴力dpdpdp,用mapmapmap存状态每次匹配标号最小的一个点这样...原创 2019-11-07 22:05:44 · 207 阅读 · 0 评论 -
【LOJ #2136】「ZJOI2015」地震后的幻想乡(状压DP)
传送门考虑对于一个边集∣S∣|S|∣S∣如果刚好加入第iii条边的时候联通那么贡献就是∣S∣m+1∗P∣S∣\frac{|S|}{m+1}*P_{|S|}m+1∣S∣∗P∣S∣P∣S∣P_{|S|}P∣S∣表示SSS中的边恰好是最小的∣S∣|S|∣S∣条的概率设fs,if_{s,i}fs,i表示点集SSS联通,连了iii条边的方案数ggg为不连通的方案数那么有fs,i+gs...原创 2019-11-07 21:59:34 · 157 阅读 · 0 评论 -
【BZOJ5019】【SNOI2017】—遗失的答案(FMT+状压dp)
传送门考虑说G,LG,LG,L相当于限制了一些质因子的出现次数有上下界其实就相当于有pnump_{num}pnum个限制我们要在GGG的因数里面选一些数出来满足限制的方案数看一下每个因数满足哪些限制然后就是一个状压dpdpdp了考虑强制选xxx的先把为000的判掉然后就是前面和后面一段dpdpdp值维护一个前后缀dpdpdp做一个FMTFMTFMT再加上自己的状态就可以了...原创 2019-08-13 13:17:09 · 192 阅读 · 0 评论 -
【LOJ #2340】【WC 2018】—州区划分(子集卷积+状压dp)
传送门令f(s)f(s)f(s)表示状态为sss的人口之和,g(s)g(s)g(s)为状态sss的所有州的划分的满意度之和则g(s)=∑i⊆sf(i)f(s)g(s⨁i)g(s)=\sum_{i\subseteq s}\frac{f(i)}{f(s)}g(s\bigoplus i)g(s)=∑i⊆sf(s)f(i)g(s⨁i)  ...原创 2019-08-08 08:52:28 · 219 阅读 · 0 评论 -
【BZOJ5248】【九省联考2018】—一双木棋(轮廓线dp)
传送门轮廓线dp入门题考虑我们用0/10/10/1串来表示一个已经选了的点和没选的点之间的轮廓如果从左下到右上比如向上为0,向右为1,那轮廓线就是一个01串我们发现选了一个点实际上只是改变了轮廓方向的顺序比如原来是...000111......000111......000111...画图发现能填一个点当且仅当轮廓线为010101时而且填完之后为101010可以通过和3进行位运算...原创 2019-02-26 00:07:21 · 144 阅读 · 0 评论 -
【BZOJ1076】【SCOI2008】—奖励关(期望+状压dp)
传送门考虑到当前选的物品会对后面决策产生影响,不好处理选还是不选,所以考虑从后往前递推f[i][sta]f[i][sta]f[i][sta]表示第iii轮,已选的状态为stastasta时,后面最多可以得到的价值然后就是简单题了#include&lt;bits/stdc++.h&gt;using namespace std;#define ll long long#define re...原创 2019-02-16 20:38:38 · 194 阅读 · 0 评论 -
【BZOJ5299】【CQOI2018】解锁屏幕(状压dp)
传送门状压dp简单题f[t][i][sta]f[t][i][sta]f[t][i][sta]表示第ttt个点,当前是iii,走过的状态为stastasta时的方案数可以先O(n3)O(n^3)O(n3)预处理每2个点之间要提前经过的状态直接枚举转移就可以了发现fff第一维不需要,就只用维护2维了#include<bits/stdc++.h>using namespace ...原创 2019-02-22 16:56:43 · 138 阅读 · 0 评论