传送门


解析:

SAM基础操作。

解析:

其实不管其他的单独看后缀链接,即fafafa指针或failfailfail指针的话,其实这个failfailfail就是KMPKMPKMP里面的nxtnxtnxt数组,所以添加一个字符后新的子串有多少个,直接用自己的lenlenlen去减去父亲的lenlenlen就可以了。


代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define re register
#define gc getchar
#define pc putchar
#define cs constnamespace IO{inline int getint(){re int num;re char c;while(!isdigit(c=gc()));num=c^48;while(isdigit(c=gc()))num=(num+(num<<2)<<1)+(c^48);return num;}inline void outint(int a){static char ch[23];if(a==0)pc('0');while(a)ch[++ch[0]]=a-a/10*10,a/=10;while(ch[0])pc(ch[ch[0]--]^48);}
}
using namespace IO;typedef struct SAM_node *point;
struct SAM_node{int len;point fa,son[26];SAM_node():fa(NULL),len(0){memset(son,0,sizeof son);}inline point clear(int l=0){fa=NULL;len=l;memset(son,0,sizeof son);return this;}
};cs int N=2003;
struct SAM{SAM_node nd[N<<1];point now,last;int strnum;SAM():now(nd),last(nd),strnum(0){}inline void clear(){for(;now>nd;--now)now->clear();now=last=nd->clear();strnum=0;}inline void push_back(char c){c-='a';point cur=++now;cur->len=last->len+1;point p=last;for(;p&&!p->son[c];p=p->fa)p->son[c]=cur;if(!p)cur->fa=nd;else if(p->son[c]->len==p->len+1)cur->fa=p->son[c];else {point clone=++now,q=p->son[c];*clone=*q;clone->len=p->len+1;q->fa=cur->fa=clone;for(;p&&p->son[c]==q;p=p->fa)p->son[c]=clone;}last=cur;strnum+=cur->len-cur->fa->len;}
}sam;int T,q;
char s[N];int len;
int ans[N][N];
signed main(){T=getint();while(T--){scanf("%s",s+1);len=strlen(s+1);for(int re i=1;i<=len;++i){sam.clear();for(int re j=i;j<=len;++j){sam.push_back(s[j]);ans[i][j]=sam.strnum;}}q=getint();while(q--){int x=getint(),y=getint();outint(ans[x][y]);pc('\n');}}return 0;
}

2018.12.15【HDU4622】Reincarnation(后缀自动机SAM)相关推荐

  1. JZOJ4025. 【佛山市选2015】找回密码(后缀自动机SAM)

    题目描述 Description Kevin是一个热爱字符串的小孩.有一天,他把自己的微信登录密码给忘记了,万般无奈之下只好点"找回密码". 这时候,网页上出现了当初设定的密保问题 ...

  2. 后缀自动机(SAM)讲解 + Luogu p3804【模板】后缀自动机 (SAM)

    本文求节点子串长度最小值有点问题,现已修改. SAM 后缀自动机可以存储某一个字符串的所有子串. 一.概念 下图是一个 字符串 "aababa" 的 后缀自动机. 上图中的 黑色边 ...

  3. 2018.12.15 bzoj3676: [Apio2014]回文串(后缀自动机)

    传送门 对原串建立一个后缀自动机,然后用反串在上面匹配. 如果当前匹配的区间[l,r][l,r][l,r]包裹了当前状态的endposendposendpos中的最大值,那么[l,maxpos][l, ...

  4. 后缀自动机SAM详解

    用一个DFA来识别一个串(比如aabab)的所有后缀,要怎么做呢 最简单的办法,把所有后缀看作要保存的单词,画一棵 trie树,像这样: 点很多很麻烦复杂度也很高 我们给这个DFA按我们的需求合并化简 ...

  5. 多校冲刺NOIP模拟6 - 游戏——矩阵乘法、后缀自动机SAM

    此题不提供链接 题目描述 前言 好久没用SAM了.我记得上次用SAM做题还是在上次. 题解 每一种长度的总方案是确定的,所以我们只需要求出赢的方案数.平局方案数即可. 做法其实和官方正解区别不大,官方 ...

  6. [hdu4416 Good Article Good sentence]后缀自动机SAM

    题意:给出串A和串集合B={B1,B2,...,Bn},求串A的所有不同子串中不是B中任一串的子串的数目. 思路:把A和B中所有字符串依次拼接在一起,然后构造后缀自动机,计算每个状态的R集合元素的最大 ...

  7. 【2018.12.15】【考试总结】【模拟+逆序对+树状数组+贪心+multiset】爆零之旅

    这是我悲惨的接近爆零的一次考试,但是本蒟蒻不能放弃,还是要总结的QAQ 答题卡 [题目背景] 八月是个悲惨的月份.先不谈炎热的天气,对于新生来说,八月意味着军训: 而对于高二高三的同学来说,八月意味着 ...

  8. HDU - 4622 Reincarnation(后缀自动机-查询区间本质不同子串个数)

    题目链接:点击查看 题目大意:给出一个长度为 n 的字符串,再给出 q 个询问,每次询问需要回答区间 [ l , r ] 内有多少个本质不同的子串 题目分析:和回文自动机那个题目一样,n * n 预处 ...

  9. P3804 【模板】后缀自动机 (SAM)

    传送门 文章目录 题意: 思路: 题意: 给你一个字符串sss,让你求sss中出现次数不为111的子串出现次数乘上该字串长度最大值. ∣s∣≤1e6|s|\le 1e6∣s∣≤1e6 思路: 没学明白 ...

  10. 2018.12.15

    mysql -u root -p    进入 数据库的增删改查 增 create database z_1031 charset utf8; 删 drop database z_1031; 改 alt ...

最新文章

  1. 三.Linux平台安装MongoDB
  2. 获取DataTable前几条数据
  3. 深入理解计算机系统学习记录(一)
  4. 知易游戏开发教程cocos2d-x移植版001
  5. 20-190-092-安装-Flink集群安装 flink-1.9.0 On Yarn
  6. WIN10超级终端下载链接及使用教程
  7. Word论文排版之样式的使用
  8. Android 蓝牙HID协议(基于BR蓝牙)连接流程分析--framework-jni-btif-bta-btm-hci -- 全网最详细(一)
  9. 群晖Docker部署MySQL服务
  10. 网络异常无法连接远程服务器,《Chess Rush》网络异常进不去怎么回事 无法连接服务器解决方法...
  11. A micro Lie theory for state estimation in robotics002
  12. Win7 IE桌面图标消失 修复方法
  13. 服务器系统部署方案,服务器 部署方案
  14. Green Plum 备份恢复集成方案
  15. 遇见的Unity疑难杂症汇总(个人积累)
  16. Java基础关键知识点(1)
  17. python 今日头条 微头条_今日头条的入门,其实就是‘微头条’
  18. 汉字与16进制互转,支持英文、数字和全部标点符号
  19. 河北经贸大学计算机科学题库,2017年河北经贸大学计算机应用技术807数据结构考研导师圈点必考题汇编...
  20. sql2008java驱动_java连接sqlserver2008驱动包

热门文章

  1. OpenGG.Clean.Player{喜歡看視頻用戶強推}
  2. java开发工程师面试自我介绍_Java程序员自我介绍
  3. java实现排列组合运算
  4. 潮汕“七样羹”,吃了变后生
  5. Mac mini 2018+ 进入 Recovery 预置恢复模式方法
  6. zblog导航小智收录网导航模板
  7. 数据竞赛修炼笔记之快手用户活跃度的预测
  8. 红帽8LINUX命令行使用技巧
  9. 三国史诗——三国官制(二)
  10. Decorate Apple Tree