LCS

Posted ccsu-zry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LCS相关的知识,希望对你有一定的参考价值。

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
",ans);
    }
}

 

以上是关于LCS的主要内容,如果未能解决你的问题,请参考以下文章

最长公共子序列(LCS),求LCS长度和打印输出LCS

LCS的数量

经典问题LCS(最大公共子串问题)C代码实现

LCS问题

Aizu2090LCS

已知一序列无重复元素,对LCS通过LIS进行优化