You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
#include<bits/stdc++.h>
|
|
|
|
|
/*
|
|
|
|
|
֪ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
|
|
|
|
|
|
|
|
|
|
<EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲο<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
https://www.cnblogs.com/aiguona/p/7278141.html
|
|
|
|
|
*/
|
|
|
|
|
#define MAXN 40005
|
|
|
|
|
using namespace std;
|
|
|
|
|
int arr[MAXN], ans[MAXN], len;
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
int n;
|
|
|
|
|
int T;
|
|
|
|
|
cin >> T;
|
|
|
|
|
while (T--) {
|
|
|
|
|
cin >> n;
|
|
|
|
|
for (int i = 1; i <= n; ++i)
|
|
|
|
|
scanf("%d", &arr[i]);
|
|
|
|
|
ans[1] = arr[1];
|
|
|
|
|
len = 1;
|
|
|
|
|
for (int i = 2; i <= n; ++i) {
|
|
|
|
|
if (arr[i] > ans[len])
|
|
|
|
|
ans[++len] = arr[i];
|
|
|
|
|
else {
|
|
|
|
|
int pos = lower_bound(ans, ans + len, arr[i]) - ans;
|
|
|
|
|
ans[pos] = arr[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
cout << len << endl;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|