2021.12 做题笔记

因为 DP 太差,教练丢给我们一堆联赛难度的 DP 题做,然后完全不会,可能我的 DP 就是普及组水平。。

Luogu P2470 [SCOI2007]压缩

为数不多的自己做出来的紫题

fi 表示到 i 的答案,转移枚举上一个 M 的位置,然后发现还要算一个 gl,r 表示从 lrl 左面有一个 M)的串能压缩成多少,g 可以区间 DP,然后就做完了。

Luogu P1896 [SCOI2005]互不侵犯

入门题

Luogu P4294 [WC2008]游览计划

现学了一下斯坦纳树,就变成模板题了

(可以插头 DP?狗都不写)

Luogu P2081 [NOI2012] 迷失游乐园

给你一棵基环树,随机一点出发走每个点至多经过一次的路径,问期望路径长度。

如果是一棵树,这题就很简单了,只要算出从每个点往上和往下走的期望长度,这个可以两次 DP 算出来(有点像换根)。

基环树的话,还要处理一下环,求出从环上出发,从环上每个点下去的概率,再算期望。

[HDU4899]Hero meet devil

DP 套 DP,用 DP(状压) 去维护另一个 DP(lcs),其实挺暴力的,,

「ZJOI2019」麻将 有空做一下(flag)

Ural 1519 Formula

[SCOI2011]地板

这俩都是挺入门的插头 DP,以前做过(也是唯一做过的),就不写了

Luogu P6021 洪水

动态 DP

插块DP

这种 DP 思路还是非常好的

bzoj 4498 魔法的碰撞

在长 L 的数轴上放 n 个魔法师,第 i 个魔法师有一个属性 di,若魔法师 ij 相邻,他们的距离不能小于 max(di,dj) ,求和法方案数。

n,di40L106

我们先把魔法师进行一个排列 p,那么他们靠的最近时占的地方就是 w=i=1n1max(dpi,dpi+1) ,对答案的贡献是 (Lwn)

把所有 d 按从大到小排序,这样对于相邻的两个点,对 w 的贡献都是先放进去那个产生的。

然后就来了一个牛逼的 DP,fi,j,k 表示考虑到第 i 个人,目前留了 j 个空位,w 值目前为 k 的方案数。

这个空位,是指目前相邻的两个数之间之后还会不会放人,这决定了我们要不要把 di 加到 k 里,这一维就是插块 DP 的精髓。

转移分三类,左右都不留空位,留一个空位,留两个空位。具体地

fi1,j,k×jfi,j1,kfi1,j,k×2jfi,j,k+difi1,j,k×jfi,j+1,k+2di

复杂度大概是 O(n2d)

bzoj 4664 Count

n 本书,第 i 本书高度 hi,一个排列 p 的混乱程度定义为 i1n1|hpihpi+1| ,求混乱程度不超过 L 的方案数。

n100L,hi1000

和上面那道题其实很像的,但好像要更复杂一点。


有一说一,回忆 DP 题挺痛苦的,因为完全不记得了还要重想一遍,12 月其实还做了不少 DP,先不写了

posted @   iMya_nlgau  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示