随笔分类 - 6.09.0 DP优化
摘要:首先此一眼就能看出来是一个非常基础的 最长不下降子序列(LIS) ,其朴素的 N^2做法很简单,但如何将其优化成为N logN? 我们不妨换一个思路,维护一个f数组,f[x]表示长度为x的LIS的最大的最后一个数字是f[x]。(为什么是最大的?可以应用 贪心 的思想,发现对于相同的x,f[x]越大其
阅读全文
摘要:可以发现只有当两个序列中都没有重复元素时(1~n的排列)此种优化才是高效的,不然可能很不稳定。 求a[] 与b[]中的LCS 通过记录lis[i]表示a[i]在b[]中的位置,将LCS问题转化为最长上升子序列问题,转化方法如下: for(int i=1;i include include inclu
阅读全文
摘要:本题非常有趣。 (n^6) 枚举四个端点,每次遍历矩阵求解。 (n^4) 先处理前缀和,枚举四个端点,每次比较前缀和和正方形面积。 (n^3) 枚举左上方端点,在枚举边长,前缀和优化 (n^2logn) 枚举左上方端点,发现条件是单调的,于是二分边长 (n^2) DP做法,枚举右下端点,若该点是0,
阅读全文