摘要:
ST表(Sparse Table,稀疏表) 主要用来解决 RMQ,可重复贡献问题 问题,相比于线段树,ST表能够做到在 \(O(n\log n)\) 的时间内预处理,以 \(O(1)\) 的速度查询 基于倍增算法,预处理每个区间,这里以维护区间最大值为例 原理是利用倍增法递推,用两个等长的小区间拼凑 阅读全文
摘要:
LIS相关问题及简单Dilworth定理 这里以一道经典的题目为例 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所 阅读全文
摘要:
最长公共子序列LCS 笔记 假设存在两个相同长度平凡的序列,我们希望找到它们最长的公共子序列,在没有其他特殊条件的情况下,利用动态规划计算的时间复杂度为 \(O(n^2)\) ,并且可以记录这个子序列 考虑两个指针作用于两个序列上,记 \(dp_{i,j}\) 表示为连续子序列 \([a_1,a_i 阅读全文
摘要:
最长上升(不下降)子序列LIS 笔记 动态规划基础 线性DP做法: dp数组 \(f_i\) 记录以 \(a_i\) 结尾的最长上升子序列的长度,在每轮枚举 \(a_i\) 时,利用 \(j\) 指针,从头扫描找到 \(a_j<a_i\) ,这样 \(a_i\) 可以作为 \(a_j\) 的后续,接 阅读全文