博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 2434 阿狸的打字机
阅读量:6068 次
发布时间:2019-06-20

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

http://www.lydsy.com/JudgeOnline/problem.php?id=2434

思路:建立fail树,并找出dfs序,那剩下要做的就是每次找到一个串的位置,然后询问它的区间里面有多少我当前串的节点,具体做法见代码。

#include
#include
#include
#include
#include
#include
struct edge{ int to,next,id;}que[500005];int fail[500005],sz,ch[500005][26],root,num,hw,low[500005],dfn[500005];char s[500005];int pos[500005],id,fi[500005],first[500005],next[500005],tot,go[500005];int fa[500005],ans[500005],V[1000005],n,m;void insert(int x,int y){ tot++; go[tot]=y; next[tot]=first[x]; first[x]=tot;}void add(int x,int v){ for (int i=x;i<=hw;i+=(i)&(-i)){ V[i]+=v; }}int query(int x){ int res=0; for (int i=x;i;i-=(i)&(-i)){ res+=V[i]; } return res;}void build(){ int now=1;sz=1; for (int i=0;i
Q; for (int i=0;i<26;i++) if (!ch[root][i]) ch[root][i]=root; else if (ch[root][i]){ fail[ch[root][i]]=root; Q.push(ch[root][i]); } while (!Q.empty()){ int now=Q.front();Q.pop(); for (int i=0;i<26;i++) if (!ch[now][i]){ ch[now][i]=ch[fail[now]][i]; }else{ fail[ch[now][i]]=ch[fail[now]][i]; Q.push(ch[now][i]); } } }void dfs(int x){ dfn[x]=++hw; for (int i=first[x];i;i=next[i]){ int pur=go[i]; dfs(pur); } low[x]=++hw;}void solve(){ add(dfn[1],1);//root节点也算上 int sx=0,now=1; for (int i=0;i

 

转载于:https://www.cnblogs.com/qzqzgfy/p/5689086.html

你可能感兴趣的文章
linux环境配置
查看>>
ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
查看>>
lintcode:next permutation下一个排列
查看>>
python 递归
查看>>
一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!
查看>>
tomcat指定配置文件路径方法
查看>>
VS没办法调试,直接退出,报错:1. 使用调试生成配置或禁用调试选项“启用‘仅我的代码’”。。。...
查看>>
linux下查看各硬件型号
查看>>
对象合成复用之策略模式
查看>>
【Vue】VS Code+Vue入门 Helloworld
查看>>
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported
查看>>
遇到过的面试题
查看>>
caffe修改需要的东西
查看>>
微信小程序 - 提取字体图标与其优化
查看>>
amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules
查看>>
java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和Sy...
查看>>
读取 classes下的配置文件
查看>>
Django Mysql SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
查看>>
EMQ 学习---订阅$SYS主题,捕获客户端上下线消息
查看>>
开源->一步步实现cnblogs博客采集工具->详细设计
查看>>