设为首页 加入收藏

TOP

POJ 3729 Facer’s string (后缀数组)
2015-07-24 05:45:13 来源: 作者: 【 】 浏览:5
Tags:POJ 3729 Facer string 后缀

题目大意:

串1中有多少个后缀和 串2中的某个后缀 的lcp 为 k


思路分析:

先找出 长度至少为k的对数有多少。

再找出 至少为k+1的有多少

然后相减。


#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
       #include 
       
         #define maxn 110005 using namespace std; int str[maxn]; int sa[maxn],t1[maxn],t2[maxn],c[maxn],n; void suffix(int m) { int *x=t1,*y=t2; for(int i=0; i
        
         =0; i--)sa[--c[x[i]]]=i; for(int k=1; k<=n; k<<=1) { int p=0; for(int i=n-k; i
         
          =k)y[p++]=sa[i]-k; for(int i=0; i
          
           =0; i--)sa[--c[x[y[i]]]]=y[i]; swap(x,y); p=1; x[sa[0]]=0; for(int i=1; i
           
            =n)break; m=p; } } int rank[maxn],height[maxn]; void getheight() { int k=0; for(int i=0; i
            
             

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 3268 Silver Cow Party 下一篇主席树初探 & bzoj 3295: [Cq..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: