码迷,mamicode.com
首页 > 其他好文 > 详细

LCS

时间:2018-10-10 23:56:50      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:scanf   turn   strlen   clu   can   div   cst   col   string   

xls模板

#include<cstdio>
#include<cstring>
char d[10005];
int query(int l,int r,char k){
    int m=(l+r)/2;
    while(l<r){
        if(d[m]>=k)r=m;
        else{
            if(l==m)break;
            l=m;
        }
        m=(l+r)/2;
    }
    if(d[l]>=k)return l;
    return r;
}
int main(){
    char s[10001];
    int t;
    scanf("%d",&t);
    while(t--){
        scanf("%s",s);
        int i,l=strlen(s),ans=1;
        d[ans]=s[0];
        for(i=1;i<l;i++){
            if(s[i]>d[ans]){
                d[++ans]=s[i];
            }
            else{
                int k=query(1,ans,s[i]);
                d[k]=s[i];
            }
            if(ans==26)break;
        }
        printf("%d\n",ans);
    }
}

 

LCS

标签:scanf   turn   strlen   clu   can   div   cst   col   string   

原文地址:https://www.cnblogs.com/ccsu-zry/p/9769526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!