nyoj 17 单调递增最长子序列

来源:互联网 发布:怎样在淘宝找超a货 编辑:程序博客网 时间:2024/05/16 17:30

单调递增最长子序列

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
描述
求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入
第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出
输出字符串的最长递增子序列的长度
样例输入
3aaaababcabklmncdefg
样例输出
137





代码如下:


01.#include <stdio.h>
02.#include <string.h>
03.char str[10000];
04.int s[10000];
05.int main ()
06.{
07.int i,j,n,m,max,k;
08.scanf("%d",&m);
09.while (m--)
10.{
11.max=0;
12.scanf("%s",str);
13.n=strlen(str);
14.for(i=0;i<n;i++)
15.{
16.k=0;
17.for(j=0;j<i;j++)
18.{
19.if(str[i]>str[j] && k<s[j])
20.k=s[j];
21.}
22.s[i]=k+1;
23.if(max<s[i])
24.max=s[i];
25.}
26.printf("%d\n",max);
27.}
28.return 0;
29.}

0 0
原创粉丝点击