后缀自动机
文章平均质量分 75
Hillan_
An OIer From ZJ
展开
-
Bzoj 3409: [Usaco2009 Oct]Barn Echoes 牛棚回声
SAM练手题反正就是构造两个SAM然后匹配就好了。。。。#include居然会错..要#include才行。。。#include#include#includeusing namespace std;struct Node{ Node *ch[200]; Node *last; int len; bool end; Node(){for(len=0;len<原创 2015-12-10 20:45:40 · 704 阅读 · 0 评论 -
BZOJ2806: [Ctsc2012]Cheat
23333调了好久发现是后缀边搞错了。。。DP我是直接Copy别人的。。。反正就是SAM+DP嘛。。。#include#include#include#includeusing namespace std; struct Node{ Node *last; Node *ch[3]; int len; Node(){len=0;last=原创 2016-02-09 09:19:06 · 547 阅读 · 0 评论 -
BZOJ3676: [Apio2014]回文串
PAM裸题 关于PAM怎么构造我之前有个链接 然后就是每次加num就好了 最后统计一下 我打的代码常数打的吓人#include<cstdio>#include<iostream>#include<cstring>using namespace std;struct Node{ int len; Node *ch[31]; Node *last; int num;原创 2016-02-11 22:05:01 · 436 阅读 · 0 评论 -
BZOJ3998: [TJOI2015]弦论
一开始想构造后缀树来着后来发现就是SAM上面跑一下就好了 时间感人QAQ#include<cstdio>#include<iostream>#include<cstring>using namespace std;char c;inline void read(int &a){ a=0;do c=getchar();while(c<'0'||c>'9'); while(c原创 2016-02-26 21:22:24 · 387 阅读 · 0 评论 -
BZOJ3926: [Zjoi20150]诸神眷顾的幻想乡
这一题有点坑。。注意longlongSAM裸题。。。#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;struct Node{ int len; Node *f,*last,*ch[10]; Node(原创 2016-02-27 19:00:32 · 572 阅读 · 0 评论 -
Hackerrank How many substrings
好难啊QAQ 今天又去想了一下 然后向敦爷求证了一下 发现思路还是对的代码太难实现了。。 LCT维护last并在Segment Tree上更新。。。 感觉自己被日死了 最后看着板子打了一发。。 先离线 考虑每个串在最后出现的开始位置有贡献 然后就是一个区间加 区间减的操作 在Access的时候更新线段树 时间复杂度O(nlognlogn)O(nlognlogn)你看800+sub原创 2017-02-16 20:40:51 · 710 阅读 · 0 评论