NYOJ 17 單調遞增最長子序列
阿新 • • 發佈:2017-05-30
text har getchar() spl mon order article 難度 art
單調遞增最長子序列
時間限制:3000 ms | 內存限制:65535 KB 難度:4- 描寫敘述
- 求一個字符串的最長遞增子序列的長度
如:dabdbf最長遞增子序列就是abdf,長度為4- 輸入
- 第一行一個整數0<n<20,表示有n個字符串要處理
隨後的n行。每行有一個字符串,該字符串的長度不會超過10000 - 輸出
- 輸出字符串的最長遞增子序列的長度
- 例子輸入
-
3 aaa ababc abklmncdefg
- 例子輸出
-
1 3 7
動歸,不多說。看代碼:
#include<stdio.h> int dp[10001]; char s[10001]; int x; int max(int a,int b) { return a>b?a:b; } int suan(){ int res=0; int i=1,b; while(i<=x){ for(b=1;b<=i;b++) if(s[i]>s[b]) dp[i]=max(dp[i],dp[b]+1); res=max(res,dp[i]); i++; } return res; } int main(){ scanf("%d",&x); getchar(); int t=x,i; char ch; while(t--) { ch=getchar(); for(i=1;ch!=‘\n‘;i++) { s[i]=ch; dp[i]=1; ch=getchar(); } x=i-1;//這裏註意要-1 printf("%d\n",suan()); } return 0; }
NYOJ 17 單調遞增最長子序列