后缀自动机
QinggegeQAQ
南有乔木不可休 汉有游女不可求
展开
-
【bzoj2946】[Poi2000]公共串
注意这个!! 一个字符串能到达一个节点的儿子意味着一定含有这个儿子的父亲表示的状态 但是有些点的值并没有赋过 并且每个点都取了min(len【i】)所以保证了从儿子穿上来的信息一定是正确的 for(int i=cnt;i>=1;i–)mx[fa[q[i]]]=max(mx[fa[q[i]]],mx[q[i]]); #include<iostream> #include<cstdio> #inc原创 2016-03-01 21:36:07 · 393 阅读 · 0 评论 -
【bzoj3926】[Zjoi2015]诸神眷顾的幻想乡
哼要先给那些根本没写清楚还发表的题解差评0.0如果不是clj的题解根本看不懂好嘛0.0 题意求一棵树上本质不同的子串的数量 每个点出度<=20 叶子节点<=20。 从所有的叶子节点开始到根的每条路径的每一个前缀都对应一个子串(公共路径上会重复) 后缀自动机上可以识别全部的后缀 也就是说按照从叶子节点到根的顺序插进去就相当于统计了所有的前缀 于是就想到了后缀自动机~ 后缀自动机不同的状态一定对原创 2016-02-29 20:22:17 · 1218 阅读 · 0 评论 -
【bzoj3998】[TJOI2015]弦论
建出后缀自动机后统计从每个点开始有多少子串 相当于在后缀自动机上统计路径条数 对于T=0时 right集合的大小为1 对于T=1时 right集合的大小需要统计 拓扑排序就行了 看黄学长博客学到了一个机智的拓扑排序的方法 在后缀自动机上len更大的点拓扑序一定在后面 编号更大的点拓扑序可能在后面 所以就可以这么写啦~ for(int i=1;i<=cnt;i++)v[len[i]]++;原创 2016-03-01 10:19:18 · 456 阅读 · 0 评论