LIS解析:
LIS 是 longest Increasing Sequence
是一道典型的线性DP问题,有两种算法可以求
一种是n^2 的算法,
设a: 1-n 的序列
for i 1->n
for j 1->i dp[i] = 1
d[i] = max{dp[i],dp[j]+1(a[j] < a[i])}
另一种nlogn即可(隐形DP)
设a: 1-n 的序列
设b 记录长度为i子序列的最小尾数的序列//次序列单调
for i 1 -> n
k++ 或 binary;
AC code:
#include <iostream>
#include <string>
#include <cstdio>
#include <algorithm>
#include <cmath&