一、
1.最长递增子序列(即经典的LIS)
题目实意:给定长度为 n 的元素不重复的数组 a,求其最长递增子序列的长度
分析:首先我们将每一个字符都看成一个子序列,长度是1,接着暴力枚举,我们需要从头到尾依次枚举是否选择当前的数字,选择一个数后就要看看与前面的数是否满足连续上升,符合条件后再判断比较哪一个更长,这就是一个不断向下求解子问题的过程,且中间存在重复子问题,从下至上将子结构的最优解求出便得到最终答案
代码如下(示例):
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N = 1e5;
int dp[N];
int a[N];
int main()
{
int n;
while(cin>>n)
{
for(int i=1;i<=n;i++