动态规划
各类动态规划。真的不会 DP 啊 qaq。
[NOI2019] 回家路线
给定一张有向图,边有
最小。
披着图论外衣的
总时间对答案的贡献可以最后枚举边计算。
设
展开,忽略
斜率优化标准形式。可以按
再考虑限制。
: 对于每一个 单独维护即可。 :由于已经按 排序,因此处理到 时所有 的 已经全部处理完毕。可以在处理完每条边的 值后按 压入等待队列,处理到 时将所有 依次压入单调队列。
[NOI2020] 美食家
简要题意就不放了。
初步想法是,设
由于
点权很麻烦,将点权转化为边权。
先丢掉第二维和后面一坨额外价值,将边用邻接矩阵
本题中定义矩阵乘法为
注意到矩阵乘法一次只能转移一步,并且
对于没有额外价值的转移,我们可以直接矩阵快速幂;而对于额外价值,单点加即可。
发现简单的矩阵快速幂复杂度不够优秀,可以预处理出
时间复杂度
引理
语文太差讲不清楚。OI Wiki。
【模板】LGV 引理
比较直接的
注意到
网格图上
[NOI2021] 路径交点
每个起点所对应终点形成一个排列,容易发现路径交点个数与排列逆序对数同奇偶。
题目要求交点为偶数的方案数减去奇数的方案数,因此两种路径对答案的贡献分别是
发现系数恰好对应
[NOI2020] 命运
树形
发现给出的限制很特别:一定是祖先到子孙节点的限制。为了方便,下面记深度较浅的点为起点,另一个点为终点。
注意到一个性质:处理完
证明很简单。深度最大的限制被满足后其他限制自然被满足。不妨设根节点深度为
设计状态
考虑转移。将
记
得到了
发现每个节点初始状态只有一种,又是二维状态、自底向上合并的形式,使用线段树合并优化复杂度。
合并的时候先合并左二子再合并右儿子,更新的时候维护一下前缀和即可。
注意
[省选联考 2021 A/B 卷] 滚榜
数据范围一眼状压。
令
直接做是
发现只需要排名的方案数,不需要真正分配
对于队伍
那么,对于一个确定的滚榜顺序
于是可以设
时间复杂度
CF908D New Year and Arbitrary Arrangement
不会。看 sol。
设
转移有
对于
可以算得此时的期望长度为
注意答案为
CF908E New Year and Entity Enumeration
不会。看 sol。
先不考虑限制,尝试判定集合
设
若
因此,
原问题相当于将
要求
CF1083D The Fair Nut’s getting crazy
*3500。(心虚)
枚举相交区间计算贡献。记
令
$$
\sum_{i=1}^n\sum_{j=i}^n[pre(i,j)<i]j<suf(i,j)(suf(i,j)-j)
$$
显然,随着
删除元素相对麻烦,考虑倒序枚举左端点,动态维护
当加入
注意到
接下来考虑答案。固定左端点
线段树维护
难度集中在代码难度。
还有为什么一场连着两个线段树啊。(
- Post title:动态规划
- Post author:Cxny
- Create time:2022-12-03 08:17:16
- Post link:https://cxny.github.io/2022/12/03/dp/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.