
【算法】状压dp
文章平均质量分 78
mysterynoip
蒟蒻OIer
展开
-
bzoj 2004 [Hnoi2010]Bus 公交线路 状压dp+矩阵乘法
题面题目传送门解法挺不错的一道状压dp和矩阵乘法的综合题了吧将题目转化一下,就变成有nnn个数,每一个位置都可以填1−k1−k1-k这kkk个数,必须保证每一段长度为ppp的子区间中这kkk个数都出现过先观察数据范围,发现n≤109n≤109n≤10^9,k≤p≤10k≤p≤10k≤p≤10,感觉对于nnn要矩乘,对于k,pk,pk,p要状压那么我们不妨设fi,jfi,j...原创 2018-08-19 20:53:02 · 179 阅读 · 0 评论 -
bzoj 2595 [Wc2008]游览计划 状压dp+斯坦纳树+spfa
题面题目传送门解法斯坦纳树的经典应用问题就是给kkk个关键点,构造一个连通块,使得这kkk个点连通且代价最小,斯坦纳树就可以解决这类问题其实kkk和棋盘的大小都并没有那么大,只有101010,所以我们不妨考虑状压dp说白了,斯坦纳树这个名词听起来确实挺nb的,但是冷静一下发现就是一个状压dp可以发现,只有2个关键点的时候一定是走最短路,如果出现超过2个点,就不会是最小生...原创 2018-08-20 19:26:59 · 214 阅读 · 0 评论 -
bzoj 5299 [Cqoi2018]解锁屏幕 状压dp
题面题目传送门解法非常基础的状压dp这个状压dp我感觉可以出成提高组难度啊设f[i][j]f[i][j]f[i][j]表示当前最后一个被划到的点为iii,所有点被划到的情况为jjj。000表示还没有被划到,111表示已经被划到了考虑如何转移,枚举上一次划到的点kkk,如果iii和kkk的连线中所有点全部被划到了,那么f[i][j]+=f[k][j′]f[i][j]+=f[...原创 2018-08-24 10:12:30 · 125 阅读 · 0 评论 -
bzoj 4565 [Haoi2016]字符合并 状压dp+区间dp
题面题目传送门解法看到K≤8K≤8K≤8,应该会比较直观地想到状压dp考虑一段区间,我们一定是把这段区间合并到不能继续合并为止,这样一定是最优的那么,我们可以设计一下状态:f[i][j][S]f[i][j][S]f[i][j][S]表示将区间[i,j][i,j][i,j]合并成二进制数SSS的最大价值考虑如何枚举中间的分界点kkk,显然是当且仅当区间[k,j][k,j][k,j]这段...原创 2018-09-24 17:39:25 · 206 阅读 · 0 评论 -
bzoj 4197 [Noi2015]寿司晚宴 状压dp
题面题目传送门解法思路是真的神仙考虑当nnn比较小的时候怎么做,因为质因子的个数不多,所以将是否取质因子的状态压成一个二进制数然后转移即可然后发现n≤500n≤500n≤500,质因子个数还是比较多的那么我们对于每一个数都分开考虑,可以发现最多只会有一个质因子>n>\sqrt n>n计算一下n\sqrt nn在222222左右,在这个范围内的质...原创 2018-09-24 20:32:11 · 202 阅读 · 0 评论 -
LOJ 2318 「NOIP2017」宝藏
题面题目传送门解法为什么我的状压dp那么丑啊……发现n≤12n≤12n≤12,所以不妨考虑状压dp设f[d][S][rt]f[d][S][rt]f[d][S][rt]表示当前深度为ddd,在根为rtrtrt的子树中有SSS集合内的点的最小代价考虑先枚举rtrtrt的一个儿子是什么,假设为xxx,然后枚举集合S′⊂SS'\subset SS′⊂S作为xxx的子树部分,...原创 2018-09-29 20:19:32 · 297 阅读 · 0 评论 -
bzoj 3836 [Poi2014]Tourism 状压dp+树形dp
题面题目传送门解法状压dp+树形dp好题图可能形成多个连通块,对于每一个连通块单独处理,因为相互之间不影响答案。那么考虑对于一个连通块的答案应该怎么计算。因为整个图满足最长路不超过10,那么就意味着dfs时候建出的搜索树深度不超过10,并且非树边必然为返祖边。我们不妨假设000表示这个点被选择了,111表示这个点没有被选择并且它还没有被覆盖,222表示这个点没有被选择但是已经被覆盖...原创 2019-03-04 18:38:57 · 199 阅读 · 0 评论