nyoj第79题http://acm.nyist.net/JudgeOnline/problem.php?pid=79
来源
【思路】
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
int k;
cin>>k;
while(k--){
int i,a[22],f[22],m,max=1;
cin>>m;
// i=sizeof(f); i=88
// memset(f,1,sizeof(f)); //memset对非字符型数组赋初值是不可取的。f[i]=16843009
for(i=1;i<=m;i++)
f[i]=1;
for(i=1;i<=m;i++)
cin>>a[i];
for(i=2;i<=m;i++){
for(int j=1;j<i;j++)
if(a[j]>a[i]&&f[j]>=f[i])
f[i]=1+f[j];
if(max<f[i])
max=f[i];
}
cout<<max<<endl;
}
// system("pause");
return 0;
}
参考:http://blog.youkuaiyun.com/sjf0115/article/details/8715437