记录一些在平常做题见到的算法和问题
1) 字符串的子串与子序列
子串必须连续是序列中连续的字符.
而子序列不必连续.
2)O(nlongn)求LIS和LCS
对于lis,记录f数组.
\(f_i\) 表示长度为 \(i\) 的 lis 最后一个数的最小值.
可以证明 \(f\) 数组单调递增.
按顺序处理每一个数.
当一个数进来的时候,二分查找即可.
对于lcs,本质上就是将其转化为lis再进行处理.
记两个字符串分别为 \(s_1\),\(s_2\),
记录\(s_2\)在\(s_1\)每个字符出现的位置,将其组成一个新的数组\(s_3\),
对\(s_3\)求lis即可.
3)
二次方的公式:\(\sum_{i=1}^n i^2=\frac{n}{6}\times (n+1)\times (2\times n+1)\)
三次方的公式:\(\sum_{i=1}^n i^3=(\sum_{i=1}^n i)^2\)

浙公网安备 33010602011771号