摘要: LCS 问题 LCS,即最长公共子序列。 1. 朴素的求法 使用动态规划,\(dp_{i,j}\) 代表以序列 \(a\) 第 \(i\) 个字母结尾,序列 \(b\) 第 \(j\) 个字母结尾的 LCS 长度。得动态转移方程: \[dp_{i,j} = \left\{\begin{matrix} 阅读全文
posted @ 2024-06-21 12:31 RainCQwQ 阅读(47) 评论(0) 推荐(0)
摘要: LIS 问题 LIS,即最长上升子序列。 1. 朴素的求法 使用动态规划,\(dp_i\) 代表以第 \(i\) 位结尾的最长上升子序列长度。得动态转移方程: \[dp_i = \max_{j < i \text{ 且 } a_i > a_j} dp_j + 1 \]Code1 #include < 阅读全文
posted @ 2024-06-21 12:22 RainCQwQ 阅读(43) 评论(0) 推荐(0)
摘要: 前缀和 前缀和是什么 可以说,前缀和是一种优化程序运行时间的一种方法,一般用于求一个序列中的区间和。 前缀和的原理 顾名思义,前缀和数组,即一个序列中前 \(i\) 个数据之和。 \[b_i = \sum_{j = 0}^{i} a_j \]所以 \(a_l\) 到 \(a_r\) 的和是: \[\ 阅读全文
posted @ 2024-06-20 22:34 RainCQwQ 阅读(28) 评论(0) 推荐(0)