后缀自动机
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
SPOJ - NSUBSTR
#include #include #include #include #include using namespace std; struct suffix_automaton{ int fa,son[28],l,key; } a[610000]; int i,j,k,l,n,m,len,root,d[300000],rnk[600000],f[300000]; char c[300000];原创 2017-09-17 19:40:28 · 445 阅读 · 0 评论 -
SPOJ - DISUBSTR
这题体现了后缀自动机的不足之处,如果此题长度是什么10^5,然后又不告诉你有多少种字符的话,不用后缀数组而去用后缀自动机就会炸空间。不过此题还是可做的,对于每一个结点所在的位置为右节点的后缀可以用st[i].len-st[st[i].pre].len;短于等于st[i].pre前面的之后到了那个结点又会继续统计。 #include #include #define maxl 1010 stru原创 2017-09-17 20:42:34 · 269 阅读 · 0 评论