技术标签: 后缀自动机
题意:f[x]表示所有长度为 x 的子串中,出现次数的最大值。求所有f[x]
方法:建立SAM,根据拓扑序找到长度为 x 的子串个数,更新一下就行了
#include <stdio.h>
#include <string.h>
#define N 250010
char str[N];
int root,cnt=0,n,last,ans[N],son[N<<1][26],mx[N<<1],size[N<<1],fa[N<<1],c[N<<1],a[N<<1];
inline int max(int x,int y){
if(x>y) return x;
return y;
}
inline void ins(int ch){
int p=last,np=++cnt;last=np;mx[np]=mx[p]+1;size[np]=1;
while(p && !son[p][ch]) son[p][ch]=np,p=fa[p];
if(!p) fa[np]=root;
else{
int q=son[p][ch];
if(mx[q]==mx[p]+1) fa[np]=q;
else{
int nq=++cnt;mx[nq]=mx[p]+1;
memcpy(son[nq],son[q],sizeof(son[q]));
fa[nq]=fa[q];fa[q]=fa[np]=nq;
while(son[p][ch]==q) son[p][ch]=nq,p=fa[p];
}
}
}
int main(){
scanf("%s",str+1);n=strlen(str+1);last=root=++cnt;
for(int i=1;i<=n;i++) ins(str[i]-'a');
for(int i=1;i<=cnt;i++) c[mx[i]]++;
for(int i=1;i<=cnt;i++) c[i]+=c[i-1];
for(int i=cnt;i>=1;i--) a[c[mx[i]]--]=i;
for(int i=cnt;i>=1;i--){
int p=a[i];size[fa[p]]+=size[p];
ans[mx[p]]=max(ans[mx[p]],size[p]);
}for(int i=1;i<=n;i++) printf("%d\n",ans[i]);
return 0;
}
文章浏览阅读152次。python的确是适合零基础的编程爱好者学习的语言,python的程序能看懂,但是很难去实现,这是每一个学习python的新手们基本上都会遇到的难题。好记性不如烂笔头,把知识运用到实战项目中,这是最好的记忆法。在比较熟悉python常用的数据类型之后,我们可以开始优雅地操作一个小项目,实现名片管理系统能实现如下功能:名片管理系统1.添加名片2.删除名片3.修改名片4.查询名片5.退出系统0.显示所..._用编程实现名片管理器功能:
文章浏览阅读1.6k次,点赞7次,收藏11次。本文以java为开发技术,实现了一个小说在线阅读系统。小说在线阅读系统的主要使用者分为管理员、读者用户、作者用户;实现功能:首页、网站管理(轮播图、网站公告)人员管理(管理员、读者用户、作者用户)购物管理(小说商城、分类列表、订单列表)模块管理(小说类型、本周强推、点击榜单、更新榜单、创作作品、系统收入汇总、读者建议、作者建议、提现信息、稿费明细、稿费信息)个人管理等功能。通过这些功能模块的设计,基本上实现了整个小说信息管理的过程。具体在系统设计上,采用了B/S的结构,同时,也使用java技术在动态页面上_spring boot读取数据库中的内容实现小说阅读
文章浏览阅读2.1k次。2021CTF工业信息安全技能大赛-隐藏的工艺工控安全工程师把工艺流程分享在论坛中,并留下关键敏感信息,你能找到相关线索吗?flag格式为:flag{}。二、解题步骤1.使用strings过滤查看图片发现隐藏在其中的PCZ文件,猜测为图片隐写;2.修改图片为zip可以解压需要密码3、需要密码尝试进行爆破得到FC00,解压获得一个01的文件夹4、使用7z查看其中是否隐藏有其它内容,在其中bmp下发现flag二维码图片。..._ctf pcz
文章浏览阅读1k次。前言现在直播平台由于弹幕的存在,主播与观众可以更轻松地进行互动,非常受年轻群众的欢迎。斗鱼TV就是一款非常流行的直播平台,弹幕更是非常火爆。看到有不少主播接入 弹幕语音播报器、 弹幕点歌等模块,这都需要首先连接斗鱼弹幕。经常看到其它编程语言的开发者,分享了他们斗鱼弹幕客户端的代码。.NET当然也能做,还能做得更好(只是不知为何很少见人分享????)。本文将包含以下内容:我将使用斗鱼TV官方公开的弹幕PD..._斗鱼弹幕服务器
文章浏览阅读825次。11-22晚上举行的华创杯决赛。提前看了决赛前十的作品,觉得自己前六的概率应该_华创杯个人心得
文章浏览阅读4.1w次,点赞71次,收藏393次。摘要关联分析,用于发现隐藏在大型数据集中的有意义的联系。这种联系反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么,其中一个事物就能够通过其他事物预测到。超市在运营中保存了交易明细帐数据,考虑根据顾客购买商品的情况,分析商品购买之间的关联,从而为超市提供合理的建议。本次试验主要有两个分析方向,分别是分析商品之间的潜在联系和分析顾客可能还会购..._spssmodeler关联分析
文章浏览阅读5.3k次,点赞2次,收藏7次。最近在项目测试中用到了虚拟域名,因为是和sqlserver的数据库一块使用,所以使用的PHP版本和apache版本都比较低,自己配置了一遍后,做个笔记,希望对其他人也有帮助。1.进入到apache的文件目录下,打开httpd.conf文件2.打开文件后,搜索,rewrite,找到下面图片中的这一行,然后把#号去掉。继续搜索vhosts这一行,继续把注释#去掉3._apache不配置域名能跑吗
文章浏览阅读1.3k次。堆栈的区别管理方式不同:栈:栈区空间由操作系统分配与释放,用于存储局部变量、函数参数等。堆:堆区空间由程序员自主分配与释放。空间大小不同:栈:栈的大小是固定的,不同的操作系统也不同。window一般为2M,linux下为10M堆:理论上可以分配虚拟地址空间大小的内存。分配效率不同:栈分配空间的效率更高。栈的擦偶哦在硬件层提供支持。分配专门的寄存器来存储栈的地址,压栈出..._栈的大小是固定的吗
文章浏览阅读182次。深度模型有高超的学习(数据拟合)能力,但为了提高模型的泛化能力、让模型在新的数据上也有好的表现,我们需要寻找一些方法干扰模型的训练过程,避免模型“记住”训练数据,这就是正则化。本次报告邀..._魏哲巍清华交叉信息研究院
文章浏览阅读8.5k次。SEO优化扫我一、服务器无法连接远程桌面1、Ping不通IP,网站打不开,不可以远程连接。可能是服务器死机了,或者网络有问题,请尝试Web重启服务器或联系服务商确认。2、Ping正常,网站可以打开,远程桌面无法连接,请尝试Web重启服务器或者联系服务商确认。另外你是否修改了远程桌面端口,而没有在防火墙例外该端口.3、终端服务器超出了最大允许连接数,Windows 2003 系统默认可以同时登陆2个..._windows 开启了远程桌面服务还是无法远程
文章浏览阅读1k次。https://blog.csdn.net/lvoyee/article/details/82017057_spring factories enableautoconfiguration
文章浏览阅读762次。1、JSON解析2、异步请求3、网络通信小结4、黑酷例子5、XML解析6、XML小结7、POST请求8、HTTP底层通信9、HTTP通信小结10、请求超时 & URL转码11、发送JSON给服务器12、多值参数