正解:SA

解题报告:

传送门!

啊先给个翻译趴QwQ大概就是说给个字符串,求互不相等的子串的个数

算是道小水题辣趴,,,并不难想到的呢QAQ只是因为是新知识所以巩固下而已QAQ

然后就显然考虑合法方案就会是所有方案-不合法方案

所有方案显然是n*(n+1)/2,不合法方案就是相等的子串的个数

考虑相等的子串的个数怎么求?不就是,∑height[i]

欧克做完了

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define ri register int
#define rb register bool
#define rc register char
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i) const int N=+;
int x[N],y[N],sa[N],rk[N],t[N],n,as;
char ch[N]; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il bool cmp(ri gd,ri gs,ri k){return y[gd]==y[gs] && y[gd+k]==y[gs+k];}
il void SA()
{
ri m=,h=;
rp(i,,n)++t[x[i]=ch[i]-'A'+];
rp(i,,m)t[i]+=t[i-];
my(i,n,)sa[t[x[i]]--]=i;
for(ri k=;k<=n;k<<=)
{
ri p=;
rp(i,,n)y[i]=;rp(i,,m)t[i]=;
rp(i,n-k+,n)y[++p]=i;rp(i,,n)if(sa[i]>k)y[++p]=sa[i]-k;
rp(i,,n)++t[x[y[i]]];
rp(i,,m)t[i]+=t[i-];
my(i,n,)sa[t[x[y[i]]]--]=y[i];
swap(x,y);
x[sa[]]=p=;
rp(i,,n)x[sa[i]]=cmp(sa[i],sa[i-],k)?p:++p;
if(p>=n)break;m=p;
}
rp(i,,n)rk[sa[i]]=i;
rp(i,,n)
{
if(h)--h;
while(ch[i+h]==ch[sa[rk[i]-]+h])++h;
as-=h;
}
} int main()
{
ri T=read();
while(T--)
{
memset(x,,sizeof(x));memset(y,,sizeof(y));memset(t,,sizeof(t));memset(sa,,sizeof(sa));memset(rk,,sizeof(rk));
scanf("%s",ch+);n=strlen(ch+);as=n*(n+)/;SA();printf("%d\n",as);
}
return ;
}

这儿是代码QwQ

最新文章

  1. json_decode返回NULL
  2. Java(二)
  3. 基于JS功能强大的日期插件Kalendae
  4. Objective-C声明在头文件和实现文件中的区别
  5. 快速搭建VPN服务器
  6. kibana安装与基础用法
  7. PhoneGap插件开发流程
  8. Python中变量的作用域(variable scope)
  9. Matlab与微积分计算
  10. [原]生产环境下的nginx.conf配置文件(多虚拟主机)
  11. ACM-ICPC北京赛区(2017)网络赛_Minimum
  12. LeetCode120-Triangle-数组,动态规划
  13. CentOS搭建FTP服务
  14. 开始第一段SPRINT
  15. 多线程---再次认识volatile,Synchronize,lock
  16. 安装Windows Server 2012 R2提示&quot;unable to create a new system partition or locate an existing system partition&quot;解决方法
  17. DelaunayTriangulation_VoronoiDiagram_using_OpenCV的实现
  18. 【校招面试 之 C/C++】第2题 函数模板、类模板、特化、偏特化
  19. 【刷题】BZOJ 4816 [Sdoi2017]数字表格
  20. better-scroll不生效原因

热门文章

  1. java写桌面程序
  2. mysql update ...select的使用 &amp; update 遇到 disable safe 的解决方法
  3. NameError:name &lsquo;xrange&rsquo; is not defined
  4. Linux下C语言执行shell命令
  5. spring MVC配置详解(转)
  6. 范型方法 &amp; 范型参数 &amp; 范型返回值
  7. hdoj:2085
  8. 每天学点Linux-切割命令split
  9. 【OSPF】防环机制详解
  10. DirectX using C++_error X3539:ps1_x is no longer supported...解决方案