设为首页 加入收藏

TOP

SPOJ 220 Relevant Phrases of Annihilation (后缀数组)
2015-07-24 05:44:03 来源: 作者: 【 】 浏览:3
Tags:SPOJ 220 Relevant Phrases Annihilation 后缀

题目大意:

求在m个串中同时出现两次以上且不覆盖的子串的长度。


思路分析:

二分答案,然后check是否满足,判断不覆盖的方法就是用up down 来处理边界。


#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
       #include 
       
         #define maxn 110005 using namespace std; char 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
            
             >1; if(check(mid,m)) ans=mid,l=mid+1; else r=mid-1; } printf("%d\n",ans); } return 0; } 
            
           
          
         
        
       
     
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇cloudflare的新waf,用Lua实现的 下一篇UVA 624 CD

评论

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