随笔分类 - 状压DP
摘要:题目 题目 做法 状压DP。 $f[i][j][k]$表示第$i$个数字,$j$表示最后一个数字在$j+k$的位置,然后$k$用二进制表示后面的情况,对于$f[i][j][k]$,设$x$为包括他以内往后$b[i]+1$位第一个没有做菜的位置,然后用$f[i][j][k]$贡献给$f[x]$即可。
阅读全文
摘要:题意 题目链接 做法 首先你得先轮廓线DP(不一定得会插头DP,但这两玩意好像没差) 题解部分照搬:https://www.luogu.com.cn/blog/duyi/solution-p3290,讲的挺好的。 先做补集转化。把“至少有一次匹配”,转化为求“禁止出现匹配”。然后用$3^$减去禁止出
阅读全文
摘要:@[TOC] 题意 "愤怒的小鸟" 题解 这道题目不是一道SB的状压吗。 我们设$f[i]$,表示射击状态是$i$,最少用了多少直线。 $i$的第$j$位为$1$表示射击这个位置。 然后对于每个直线跑背包。 时间复杂度:$O(Tn^22^n)$ 但是其实有更快做法,限制$i$只能被包含最低位的$1$
阅读全文