前言
这种题真的不是没做过, 最应该做出来的题却连基本思路都不会
一定要冷静下来学, 不要浮躁
冷静, 耐心, 放下
自己做, 永远自己做, 题解是一个非常坏的习惯, 一定要改过来, 加油
做什么事情都应该彻底冷静下来, 这样做的最好
但是这样太慢了, 不适合在考试环境中使用, 但是平时提高能力用这种方法完全没有问题
记得明天还要补之前的 \(\rm{dp}\) , 至少看一下
思路
题意
给定字符串 , 可以删除一些位置 对应的 形成
求最终字典序最大的
-
定义操作 (约束) 和开销 / 收益, 要求最值化开销 / 收益
- 模拟操作, 找性质
- 将约束条件数学化
- 最优化问题的瓶颈, 考虑找最优解的性质来处理
- 逐元素处理
- 先找到统一的构造方式
- 直接处理
- 推导动态规划
-
子序列类问题
- 对于涉及到 \(1, -1\) 的问题, 善于通过 \(\Delta\) 和前缀后缀来解决
- 往往 \(\rm{dp}\)
-
\(\rm{dp}\)
- 先考虑最终答案的表达式 \((\)合法解的构造方案\()\) , 基础上进行 \(\rm{dp}\)
- 子序列类问题, 一维对应原串
先将约束条件数学化
求一组 \(x_i\) , 使得 \(\textbf{hash}\) 对 \(\{\bigcup S_{x_i}, \bigcup T_{x_i}\}\) 最大
考虑逐元素处理的 \(\rm{dp}\) , 设计状态 \(f_{i, j}\) 表示考虑到 \(i\) , 当前 \(|x| = j\) 的最大 \(\textbf{hash}\) 对 \(\{\bigcup S_{x_i}, \bigcup T_{x_i}\}\)
不难发现 最大 \(\textbf{hash}\) 对 满足我们之前说的贪心性质, 因此可以直接存储在动态规划数组里面
然后就很好 \(\rm{dp}\) 了
总结
满足贪心性质的状态可以存储在状态数组中
当要求一个 对 的贡献最大时, 你仍然可以考虑 \(\rm{dp}\)