博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ3238 [Ahoi2013]差异
阅读量:6114 次
发布时间:2019-06-21

本文共 1640 字,大约阅读时间需要 5 分钟。

裸的SA?

SA求出来然后单调栈+height搞一搞就好了啊qwq

话说,为什么我这玩意自闭了啊

吸氧就能过 不吸就挂QAQ

好像是longlong强转出问题了emm

不管了我自闭了。

#include
#include
#include
#include
#define inf 20021225#define ll long long#define mxn 500010using namespace std;int sa[mxn],ht[mxn],rk[mxn],tp[mxn],pre[mxn],n,m;char ch[mxn];void sort(){ for(int i=1;i<=m;i++) pre[i]=0; for(int i=1;i<=n;i++) pre[rk[i]]++; for(int i=1;i<=m;i++) pre[i]+=pre[i-1]; for(int i=n;i;i--) sa[pre[rk[tp[i]]]--]=tp[i];}int id(char c){return c-'a'+1;}void getSA(){ m=26; for(int i=1;i<=n;i++) pre[rk[i]=id(ch[i])]++; for(int i=1;i<=m;i++) pre[i]+=pre[i-1]; for(int i=n;i;i--) sa[pre[rk[i]]--]=i; for(int k=1,num;num
<<=1) { num=0; for(int i=n-k+1;i<=n;i++) tp[++num]=i; for(int i=1;i<=n;i++) if(sa[i]>k) tp[++num]=sa[i]-k; sort(); memcpy(tp,rk,sizeof(rk)); rk[sa[1]]=num=1; for(int i=2;i<=n;i++) rk[sa[i]]=(tp[sa[i]]==tp[sa[i-1]]&&tp[sa[i]+k]==tp[sa[i-1]+k])?num:++num; m=num; }}void getheight(){ int k=0; for(int i=1;i<=n;i++) rk[sa[i]]=i; for(int i=1;i<=n;i++) { if(k) k--; int j=sa[rk[i]-1]; while(i+k<=n&&j+k<=n&&ch[j+k]==ch[i+k]) k++; ht[rk[i]]=k; }}int stk[mxn],tt,l[mxn],r[mxn];ll ans;int main(){ //freopen("10.in","r",stdin); scanf("%s",ch+1); n=strlen(ch+1);getSA();getheight(); for(int i=1;i<=n;i++) ans+=(ll)i*(n-1); ht[1]=ht[n+1]=-1;stk[tt=1]=1; for(int i=2;i<=n+1;i++) { while(tt&&ht[i]

 

转载于:https://www.cnblogs.com/hanyuweining/p/10321926.html

你可能感兴趣的文章
GNU make manual 翻译( 一百六十四)
查看>>
ASP.NET中 DetailsView(详细视图)的使用前台绑定
查看>>
Hadoop示例程序WordCount详解及实例
查看>>
一道面试题带来的前端优化——实现星星点评
查看>>
CoderZh首款Python联机对战游戏 - NancyTetris1.0倾情发布(二)
查看>>
poj3250 Bad Hair Day
查看>>
React Native 网络请求
查看>>
WPF/Silverlight的数据绑定设计的真糟糕
查看>>
SQL复制多表数据
查看>>
排序的基本概念与分类
查看>>
成功将ubuntu8.10升级到了9.10
查看>>
python3-类与对象
查看>>
Python正则表达式指南
查看>>
22.4. rpcinfo
查看>>
对 ASP.NET 图像的颜色量化(Quantization)进行优化
查看>>
Oracle中NVARCHAR2字符集不匹配问题
查看>>
一起学微软Power BI系列-官方文档-入门指南(7)发布与共享-终结篇+完整PDF文档
查看>>
MVC 服务器文件下载
查看>>
【转】Arp的攻防实战
查看>>
Angularjs中文版本开发指南发布
查看>>