2023.8.13 DP套DP + 动态DP

[TJOI2018] 游园会

luogu link

首先很容易想到 fi,0/1/2 表示考虑兑奖串的前 iNOI的出现情况为 0/1/2 的方案数

考虑转移 结果发现因为不知道奖章串现在匹配到了哪一位 所以不好转移

我们考虑 O(n2)LCS 求法
gx,y 表示考虑 S 串的前 xT 串的前 y 位的 LCS
那么显然有 gx,y=max(gx1,y,gx,y1,gx1,y1+(Sx==Ty))

那么假如说我把这个 g 数组放到 f 数组的第三维 转移的时候考虑枚举 y 然后从 g 中转移过去不就可以了吗 因为我们把 g 拉出来就相当于我们知道了奖章串的匹配情况

进一步的 我们发现 对于同一个 x 而言 它的 y 每一位最多只差 1
又因为 y 显然只有 15 个 我们考虑将其差分 然后用 fi 的第 j 位表示这个差分数组 那我们就可以状压这个差分数组

每次转移的时候 枚举兑奖串的第 i+1 位 然后用状压的状态转移即可

upd:如果实在感觉难以理解的话 我的理解是将原来那个 gx,y 对应到现在的 fx,···,y


[NOIP2018 提高组] 保卫王国

luogu link

动态 DP :黑科技 考虑将转移变成一个魔改版矩乘的形式

首先原来的 DP 很显然
然后我们考虑如何以矩乘的形式来进行转移

image

然后我们用重链剖分 使每个点的答案为它到它所在的重链末端的转移矩阵乘积
那么每次修改点权 我们就修改该点的 g 数组 然后修改 fatopig 数组 一直跳到根节点即可

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