#include #include #include #define maxn 131072 #define inf 1e8 using namespace std; int a[100010]; int b[100010]; int dp[100010]; int id[100010]; int main() { int T; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); int k=1; b[1]=a[1]; dp[1]=1; for(int i=2;i<=n;i++) { if(a[i]>b[k]) { k++; dp[i]=k; b[k]=a[i]; continue; } int pos=lower_bound(b+1,b+k+1,a[i])-b; dp[i]=pos; b[pos]=a[i]; } memset(b,0,sizeof(b)); for(int i=1;i<=n;i++) b[dp[i]]++; int num=0; for(int i=1;i<=n;i++) { if(b[i]) { num++; id[i]=num; } } for(int i=1;i