考察Lis。但是做的时候一直WA,才发现自己记的lis模板是错的。不是dp[1]=1,而要放到循环里,对每个i初始化一遍dp[i]=1。后面基因的题一直WA也是这里出错了。
#include <iostream>
#include <cstdio>
using namespace std;
#define MAX_N 1000
int dp[MAX_N+1], num[MAX_N+1];
int main()
{
int N = 0, res = 0;
scanf("%d", &N);
for(int i = 1;i <= N;i++)
scanf("%d", &num[i]);
for(int i = 1;i <= N;i++)
{
dp[i] = 1;
for(int j = 1;j <= i;j++)
{
if(num[i] > num[j])
dp[i] = max(dp[i], dp[j]+1);
}
res = max(dp[i], res);
}
printf("%d\n", res);
return 0;
}