sam模板
2024-09-06 13:51:10
SAM模板
struct SAM{
static const int maxn = * ;
struct node{
node*nxt[],*fail;
int len;
}; node*root;int cnt;
node no[maxn];
node*newnode(){
return &no[cnt++];
}
SAM(){
cnt = ;
root = newnode();
} node* add(node*p,int c){
node*cur = newnode();
cur->len = p->len+;
while(p &&!p->nxt[c])p->nxt[c] = cur,p = p->fail;
if(!p){
cur->fail = root;return cur;
}
node*q = p->nxt[c];
if(q->len == p->len+){
cur->fail = q;
}else{
node*nq = newnode();
*nq = *q;
nq->len = p->len+;
q->fail = cur->fail = nq;
while(p&&p->nxt[c]==q)p->nxt[c] = nq,p = p->fail;
}
return cur;
} ll getNumOfDistinctSubstrings(){
auto ans = ;
REP(i,,cnt)ans+=no[i].len-no[i].fail->len;
return (ans);
}
};
最新文章
- Yeoman 官网教学案例:使用 Yeoman 构建 WebApp
- 深入理解js——作用域和上下文环境
- dhtmlx相关
- P2P资料
- iOS中关于.pch的新建与配置问题
- [转]windows下安装Object-C开发环境
- [转]Uploading and Downloading VHDs to Windows Azure
- c语言实现BMP图像转换为灰度图
- 第九十九节,JavaScript数据类型
- Javascript中Array(数组)对象常用的几个方法
- 深度学习框架-caffe安装-Mac OSX 10.12
- 豹哥嵌入式好讲堂:ARM Cortex-M调试过程探析(1)- 4线接口标准(JTAG)
- 搭建vscode+vue环境
- IO流--与properties集合配合使用
- DAY15 模块
- async和await用法(Task)
- 【webGL】
- subprocess 子进程模块
- Maven for Eclipse 第三章 ——创建和导入 Maven 项目
- 别人家的PS系列又来了!!!
热门文章
- UPC 2223: A-Number and B-Number(数位DP+二分)
- LeetCode OJ——Pascal's Triangle II
- nrm+nvm
- springboot 启动类启动跳转到前端网页404问题的两个解决方案
- Concurrency and Application Design (一)
- 邁向IT專家成功之路的三十則鐵律 鐵律二十:IT人證照之道-收斂
- ASP复制文件
- Linux文件内容查阅
- Opencv 最小外接矩形合并拼接
- C 标准库 - <;locale.h>;