/*Longest Ordered Subsequence
2008-08-05 01:47:41 Accepted 2136 C++ 00:00.01 844K 天将降大任于我
将序列中的数字从大到小标记,最大的没标,从第二大开始(被标过的且a[i][1]的值
符合递减顺序的即为子序列的元素),到最小的那个即为最长子序列的个数-1,故最后需+1
*/
#include<iostream>
using namespace std;
const int N=1000;
int a[N+1][2];
int main()
{
int n,k,i,j,t,Max;
scanf("%d",&k);
for(t=1;t<=k;t++)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i][0]);
a[i][1]=0;
}
for(i=n-2;i>=0;i--)
{ Max=-1;
for(j=i+1;j<n;j++)
{
if(a[j][0]>a[i][0]&&a[j][1]+1>Max)
{
Max=a[j][1]+1; a[i][1]=a[j][1]+1;
}
}
}
Max=-1;
for(i=0;i<n;i++)
if(a[i][1]>Max) Max=a[i][1];
printf("%d\n",Max+1);
if(t<k) printf("\n");
}
return 0;
}
心难泰,世风坏,旧时正气今何在?正义寡,人情薄,闻道虽多,茅塞不开。怪!怪!怪!
空等待,几多载,冲出重围人心快!暴雨打,狂风袭,任他折磨,此志难改。耐!耐!耐!