单调递增最长子序列
和解拦截导弹那题是一样一样的哦,给你一个序列 求出这个序列中最长的单调递增序列,
1 #include <stdio.h> 2 #include <string.h> 3 4 #define N 10005 5 char ch[N]; 6 char dp[N]; 7 8 int main() 9 { 10 int T; 11 scanf("%d",&T); 12 while(T--) 13 { 14 int c = 1; 15 int i = 0; 16 int j = 0; 17 scanf("%s",ch); 18 dp[0] = ch[0]; 19 for(i = 1; i < strlen(ch);i++) 20 { 21 for(j = c-1; j >= 0; j--) 22 if(dp[j] < ch[i]) break; 23 dp[j+1] = ch[i]; 24 25 if(j == c-1 ) c++; 26 } 27 printf("%d\n",c); 28 } 29 return 0; 30 }