状态压缩dp笔记
01矩阵 难度:提高+/省选−
轮廓线dp,我们用状态表示已经确定的格子和未确定的格子之间的轮廓线,进行转移
Corn Fields G 难度:提高+/省选−
同样的轮廓线dp
一双木棋 难度:省选/NOI−
很特殊的状态表示方式
我们发现,每一行放的棋子数量是单调不减的,我们设计一个由m个0和n个1构成的串表示长度,第i个1前面如果有j个0,就说明从下往上数第i行放了j个棋子
小博弈论,从后面向前面dp转移
字符合并 难度:省选/NOI−
我们发现,虽然n很大,但是k很小,一个段压缩后总共有 \(2^k\) 种可能的形态,我们将区间dp和状态压缩dp结合,用\(f_{i,j,S}\)表示区间\([i,j]\)压缩后形态为S的答案最大值,然后按照区间dp的方式进行转移即可
奇怪的道路 难度:省选/NOI−
我们观察题目给出的要求
要求我们用m条边连接n个点,点编号差不大于k,每个点的出度都为偶数,而且图不要求连通
我们可以发现k范围很小,而且后面三个条件提示我们,我们可以很容易的将最后k个点的状态表示,同时,我们为了不重不漏统计答案,只算从后往前练的边
用 \(dp_{i,j,S}\) 表示前i个点用了j条边,最后k个点的状态为S的方案数,其中S中我们0表示偶数条边,1表示奇数条边
枚举第i+1个点和前面k个点的连边情况T,$ (S \bigoplus T) <<1$即为新的状态,接着直接转移就行
注意,图中可以有重边,我们一个点往后连两条边不会对状态产生影响,所以我们也要枚举重边的贡献

浙公网安备 33010602011771号