zoukankan      html  css  js  c++  java
  • 51nod 1089 最长回文字串

    http://blog.csdn.net/h1021456873/article/details/49507197

    他写的很好

    但是时间复杂度 不是很明白

    #include<stdio.h>
    #include<algorithm>
    #include<stdlib.h>
    #include<cstring>
    #include<iostream>
    #include<string>
    #include<cmath>
    #include<vector>
    #include<queue>
    #include<deque>
    #include<map>
    #include<iterator>
    #include<stack>
    
    using namespace std;
    
    #define ll  __int64
    #define MAXN  100010
    #define inf  1000000007
    
    char z[MAXN*2+10],y[MAXN*2];
    int p[MAXN];
    
    void Mana(int n)
    {
        int mx=0;
        int id=0;
        for(int i=1;i<n;i++)
        {
            if(mx>i)
                p[i]=min(p[2*id-i],mx-i);
            else
                p[i]=1;
            for(;z[i+p[i]]==z[i-p[i]];p[i]++)
                ;
            if(p[i]+i>mx)
            {
                mx=p[i]+i;
                id=i;
            }
        }
    
    }
    int main()
    {
        scanf("%s",y);
        int l=1;
        z[0]='&';
        z[l++]='#';
        int len=strlen(y);
        for(int i=0;i<len;i++)
        {
            z[l++]=y[i];
            z[l++]='#';
        }
        Mana(l);
        int ans=0;
        for(int i=0;i<l;i++)
            ans=max(ans,p[i]);
        printf("%d
    ",ans-1);
        return 0;
    }
    View Code
  • 相关阅读:
    绑定姿势
    Mesh.CombineMeshes
    Mono vs IL2CPP
    lua keynote2
    lua keynote
    游戏编程模式KeyNote
    架构、性能和游戏
    Canvas
    AssetBundle Manager
    Loading AssetBundle Manifests
  • 原文地址:https://www.cnblogs.com/cherryMJY/p/6845603.html
Copyright © 2011-2022 走看看