没啥好说的“
#include<iostream>
#include<algorithm>
#include<string>
#include<cstdlib>
using namespace std;
int zhi[40001];
int dp[40001];
int len;
int main()
{
int T;
cin >> T;
while (T--)
{
memset(dp, 0, sizeof(dp));
len = 0;
int n;
cin >> n;
for (int a = 1;a <= n;a++)scanf("%d", &zhi[a]);
for (int a = 1;a <= n;a++)
{
int tou = 1;
int wei = len;
while (tou <= wei)
{
int mid = (tou + wei) / 2;
if (zhi[a] > dp[mid])tou = mid + 1;
else wei = mid - 1;
}
dp[tou] = zhi[a];
if (tou > len)len++;
}
cout <<len<<endl;
}
return 0;
}