题目很基础,就是套公式,但是这个题我WA了两次,后来看了很多博客才发现其实是一个很傻的错误,看代码就知道了
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int dp[10005],a[10005];
int n,v,i,j;
while( scanf("%d",&n)!=EOF)
{
int maxx=0;
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
dp[i]=1;
}
for(i=1;i<=n;i++) //这个地方当时做别的题的时候习惯性的让i从2开始,没想到这个题目有一组
{ //测试数据是1 1,我又令的maxx=0,所以wa了两三次
for(j=1;j<i;j++)
{
if(a[i]>a[j])
{
dp[i]=max(dp[i],dp[j]+1);
}
}
if(dp[i]>maxx) maxx=dp[i];
}
cout<<maxx<<endl;
}
return 0;
}