状压DP
guapisolo
已经弃掉CSDN转博客园了https://www.cnblogs.com/guapisolo/
展开
-
hdu 6149 Valley Numer II (状压DP 易错题)
题目大意:给你一个无向连通图(n<=30),点分为高点和低点,高点数量<=15,如果两个高点和低点都直接连边,那么我们称这三个点形成一个valley,每个点最多作为一个valley的组成部分,求valley的最大数量高点状压,然后枚举低点,判断这个低点能否影响答案注意:上一层的值要全都先赋给这一层,再枚举这一层,否则上一层的某些状态可能还没枚举到就枚举这一层了(比如上一层...原创 2018-08-16 20:18:46 · 131 阅读 · 0 评论 -
CF895C Square Subsets (组合数+状压DP+简单数论)
题目大意:给你一个序列,你可以在序列中任选一个子序列,求子序列每一项的积是一个平方数的方案数。1<=a[i]<=70因为任何一个大于2的数都可以表示成几个质数的幂的乘积所以我们预处理70以内的质数,把它作为二进制状压的状态,每个在序列中出现数Hash一下,组合数推一下所以把奇次幂的状态表示为1,偶次幂的状态就是0,比如6就是11,42就是1011而平方数的每个质因子...原创 2018-08-16 23:23:44 · 237 阅读 · 0 评论 -
CF482C Game with Strings (状压DP+期望DP)
题目大意:甲和乙玩游戏,甲给出n(n<=50)个等长的字符串(len<=20),然后甲选出其中一个字符串,乙随机询问该字符串某一位的字符(不会重复询问一个位置),求乙能确定该串是哪个字符串的询问次数的期望值这题不看题解好难想......(感谢zhx和zhx两位大佬的题解)len很小,考虑状压DP,显然我们要状压询问,要定义两个状态,f[]和num[]1表示询问,0表示未询问...原创 2018-08-17 11:33:28 · 249 阅读 · 0 评论 -
hdu 6125 Free from square (状压DP+分组背包)
题目大意:让你在1~n中选择不多于k个数(n,k<=500),保证它们的乘积不能被平方数整除。求选择的方案数因为质数的平方在500以内的只有8个,所以我们考虑状压先找出在n以内所有平方数小于等于n的质数,然后我们把它们作为状压的状态然后要对每个小于n数进行状压,如果它不能被它能被质数的平方整除,那就筛出它所有的在状态内的质因子,大于状态内的质因子我们存到剩余因子的乘积的部分里...原创 2018-08-18 12:43:38 · 324 阅读 · 0 评论 -
CF449D Jzzhu and Numbers (状压DP+容斥)
题目大意:给出一个长度为n的序列,构造出一个序列使得它们的位与和为0,求方案数也就是从序列里面选出一个非空子集使这些数按位与起来为0.看了好久才明白题解在干嘛,我们先要表示出两两组合位与和为0的所有情况先hx一下每个数出现的次数,然后我们从遍历 i ,i 是二进制的数位然后遍历所有的情况,如果第 i 位有1,那么说明我们去掉第 i 位的1就是又一种情况!其实我们统计的是所有...原创 2018-08-18 20:47:22 · 194 阅读 · 0 评论 -
NOI 2015 寿司晚宴 (状压DP+分组背包)
题目大意:两个人从2~n中随意取几个数(不取也算作一种方案),被一个人取过的数不能被另一个人再取。两个人合法的取法是,其中一个人取的任何数必须与另一个人取的每一个数都互质,求所有合法的方案数(数据范围毕竟很小,乍一看也不是啥打表找规律的题)和我之前做过的一道题很类似hdu 6125,但这道题由于题面看起来很玄学,所以正解更难想但还是 状压DP+分组背包 的套路因为500以内的任何一...原创 2018-09-19 23:42:32 · 189 阅读 · 0 评论