这是经典动态规划,终于终于啊~
用时:0ms
#include<stdio.h>
#define MAX 1500
typedef struct Info
{
int index;
int a;
int length;
}Info;
Info num[MAX];
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int c,n,i,j,k,m,p;
//案例数
scanf("%d",&c);
for(i=0;i<c;i++)
{
//序列长度
scanf("%d",&n);
for(j=0;j<n;j++)
{
scanf("%d",&num[j].a);
num[j].index=j;
if(j==0)
{
num[j].length=1;
continue;
}
m=0;
for(k=0;k<j;k++)
{
if(num[k].a<num[j].a)
{
if(num[k].length>m)
m=num[k].length;
}
}
num[j].length=m+1;
}
m=0;
for(p=0;p<n;p++)
{
if(num[p].length>m)
m=num[p].length;
}
if(i!=0)
putchar('/n');
printf("%d/n",m);
}
return 0;
}