状态压缩dp笔记

01矩阵 难度:提高+/省选−
轮廓线dp,我们用状态表示已经确定的格子和未确定的格子之间的轮廓线,进行转移

Corn Fields G 难度:提高+/省选−
同样的轮廓线dp

一双木棋 难度:省选/NOI−
很特殊的状态表示方式
我们发现,每一行放的棋子数量是单调不减的,我们设计一个由m个0和n个1构成的串表示长度,第i个1前面如果有j个0,就说明从下往上数第i行放了j个棋子
小博弈论,从后面向前面dp转移

字符合并 难度:省选/NOI−
我们发现,虽然n很大,但是k很小,一个段压缩后总共有 2k 种可能的形态,我们将区间dp和状态压缩dp结合,用fi,j,S表示区间[i,j]压缩后形态为S的答案最大值,然后按照区间dp的方式进行转移即可

奇怪的道路 难度:省选/NOI−
我们观察题目给出的要求
要求我们用m条边连接n个点,点编号差不大于k,每个点的出度都为偶数,而且图不要求连通
我们可以发现k范围很小,而且后面三个条件提示我们,我们可以很容易的将最后k个点的状态表示,同时,我们为了不重不漏统计答案,只算从后往前练的边
dpi,j,S 表示前i个点用了j条边,最后k个点的状态为S的方案数,其中S中我们0表示偶数条边,1表示奇数条边
枚举第i+1个点和前面k个点的连边情况T,(ST)<<1即为新的状态,接着直接转移就行
注意,图中可以有重边,我们一个点往后连两条边不会对状态产生影响,所以我们也要枚举重边的贡献

posted @   flyfreemrn  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示