废话少说,直接来代码吧 /** * Description: Zoj 2136 * Language: C++ * Status: Accepted * Run Time: 0ms * Run Memory: 188KB * Created: Jun.21-2011 * By: eeorange */ #include <cstdio> #define MAXN (1000 + 10) int K[MAXN], L[MAXN]; int main(){ int nr_cases; scanf("%d", &nr_cases); while(nr_cases--){ int n; scanf("%d", &n); for(int i=0; i < n; i++) scanf("%d", &K[i]); for(int i=0; i<n; i++){ int m = 0, x; for(int p=0; p<i; p++) if(K[i] > K[p] && L[p] > m) m = L[x=p]; L[i] = m+1; } int max = 0; for(int i=0; i<n; i++) if(L[i] > max) max = L[i]; printf("%d/n", max); if(nr_cases) printf("/n"); } return 0; }