奇怪的DP

P5975 [CEOI2009] photo

很抽象的题

path

给定一个 n×m 的矩形,从左下角 (n,1) 出发,可以向右转或向前走,障碍物和走过的格子不能走,求走到 (s,t) 的方案数,答案模 k

1n,m40k109

只有方向不可做

f[a][b][x][y][03] 表示矩形 (a,b,x,y) 从左上角、左下角、右上角、右下角进入的方案数。枚举走了多少步后再拐弯再进行转移

Paint Pearls

n 个位置,每个位置有 1 个目标颜色。每次选择一个区间,将区间所有的位置全部改成目标颜色。设区间内不同颜色的数量为 x,则操作的代价为 x2,求最小代价

1n5×104

f[i] 表示 1i 的最小代价

下界是 n(一个个改)。因此若区间内不同颜色的数量超过 n,则不会直接操作。

记录当前位置往前 n 种颜色及其对应位置即可

Data Structure You've Never Heard Of

给定一个长度为 n 的序列 a1,a2an,每个元素都是一个 d01 向量,求所有不下降子序列的个数

1n2×1051d16

对于 d 维向量,aiaj 等价于 ai 的每一维都小于等于 ai

ab 等价于 a|b=b,即 ab 的子集,ba 的超集

f[i] 表示以 i 为结尾的子序列的个数,时间复杂度 O(n2)

考虑维护高位前缀和,设 s[a][b] 表示前 8 位是 a,后 8 位是 bf 之和

查询和修改的复杂度都是 O(nd2)

Tree chain problem

一个 n 的点的树,m 条树链,第 i 条树链的价值为 wi。请选择一些没有公共点的树链,使得价值和最大

1n,m105

f[x] 为以 x 为根的子树内选取树链的价值最大值。枚举一条以 xLCA 的链 (u,v,w),那么当前方案价值为 w 加上去除链上点后深度最小的点的 f

g[x]x 的所有儿子的 f 之和

设链上的点为紫色,它们的儿子为绿色,那么绿色f之和 = 紫色g之和 紫色f之和 + LCA特殊处理

问题转化为树上的树链查询与单点修改

建立 dfs 序线段树 Tt[x] 存储根到 x 的和

权值的单点修改转化成 dfs 序上的区间修改

树链查询首先拆成两条链减去祖先

P3577 [POI2014] TUR-Tourism

困难

posted @   xishanmeigao  阅读(15)  评论(0编辑  收藏  举报
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示