数据结构优化DP
本题重在转化。由于最长公共子序列的下标是一个最长上升子序列,所以我们可以考虑把数字映射成下标,有多个就要倒序把每个值映射成多个不同的值,因为一个数有多种下标都是可取的。
与基本问题相同,但是需要根据长度插入新的值,而且只能使用树状数组/线段树进行优化。注意考虑只记录一种是否会影响答案(根据传递性所以“否”)。
按照(位置,时间)建立坐标系。首先利用参照物转变为人向上走,人任意位置不重要,因为我们求的就是到达每个点的答案,初始位置任意说明每个点都是可达的。然后需要把可以到达当前点的位置用不等式表示出来(即向上走的步数的两倍
首先需要发现每次操作右端点都是
根据线性DP总结即可,然后关注代价和收益是按照前缀、若干个的区间变化的,以及实现时的小技巧。
这里的路我们是一批一批修的,如果说比如出现修路
总结
其实就是偏序,满足
树状数组如果维护最值(单修),维护的是前缀/后缀/前缀子矩阵/后缀子矩阵,如果维护和,那么随意(区修需要两个,还要公式计算,比较烧脑)。
线段树维护区间修改+区间查询。
如果定长其实就是滑动窗口,单调队列优化,但是有特定形式。
有三维就用二维树状数组/树套树。(二维树状数组比一般的树套树简单得多)
本文作者:wscqwq
本文链接:https://www.cnblogs.com/wscqwq/p/18330665
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2023-07-29 ApproximateEqualization
2023-07-29 生成函数
2023-07-29 动态逆序对