zoukankan      html  css  js  c++  java
  • hihoCoder week227 Longest Subsequence

    题目链接 https://hihocoder.com/contest/hiho227/problem/1

    题目详解 https://hihocoder.com/discuss/question/5587

    #include <bits/stdc++.h>
    using namespace std;
    #define Max(a,b) ((a>b)?a:b)
    const int N = 1e6+10;
    int n,ans; string s[N], S;
    int slen,Slen;
    int f[N/10][30], id[30];
    
    void init() 
    {
        for(int i=0; i<=26; i++) 
            id[i] = Slen;
        for(int i=Slen-1; i>=0; i--) {
            for(int j=0; j<26; j++) {
                f[i][j] = id[j];
            }
            int x = S[i] - 'a';
            id[x] = i;
        }
        /*
        for(int i=0; i<Slen; i++) {
            for(int j=0; j<3; j++) {
                printf("%d%c",f[i][j],j==2?'
    ':' ');
            }
        }
        */
    }
    
    void solve(int k)
    {
        int i=0, j=0;
        while(i == 0 && j < Slen) {          
            if(S[j] != s[k][i])
                j++;
            else 
                i++,j++;
        }
        j--;
        while(i < slen && j < Slen) {
            int x= s[k][i] -  'a';
            j = f[j][x];
            if(j >= Slen) break;
            i++;
        }
        
        if(i >= slen) {
            //cout<< k <<" "<< slen<<endl;
            ans = Max(ans, slen);
        }
        return ;
        
    }
    
    int main()
    {
        freopen("in.txt","r",stdin);
        while(~scanf("%d", &n)) {
            ans = 0;
            for(int i=0; i<n; i++)
                cin >> s[i];
            cin >> S;
            Slen = S.length();
            init();
            for(int i=0; i<n; i++) {
                slen = s[i].length();
                if(slen <= ans || slen > Slen) 
                    continue;
                solve(i);
            }
            printf("%d
    ", ans);
        }
        return 0;
    }
  • 相关阅读:
    C#中HashTable的用法
    JS、C#编码解码
    javascipt取整数四舍五入
    Oracle中的不等于号
    MD5加密函数
    汉字转成拼音
    按日期生成惟一的编号
    将access数据转换成oracle数据
    TOAD Menu Shortcuts 快捷键
    请求方法总结
  • 原文地址:https://www.cnblogs.com/Draymonder/p/9914040.html
Copyright © 2011-2022 走看看