博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bzoj2882: 工艺
阅读量:7260 次
发布时间:2019-06-29

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

题面

Sol

\(sa\)的话就直接连在一起后缀排序就好了

\(sam\)就插入两次,贪心在上面走就好了

# include 
# define RG register# define IL inline# define Fill(a, b) memset(a, b, sizeof(a))using namespace std;typedef long long ll; IL int Input(){ RG int x = 0, z = 1; RG char c = getchar(); for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1; for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48); return x * z;} const int maxn(3e5 + 5);map
trans[maxn << 2];int fa[maxn << 2], tot = 1, last = 1, len[maxn << 2], n, a[maxn];IL void Extend(RG int c){ RG int p = last, np = ++tot; len[last = np] = len[p] + 1; while(p && !trans[p][c]) trans[p][c] = np, p = fa[p]; if(!p) fa[np] = 1; else{ RG int q = trans[p][c]; if(len[q] == len[p] + 1) fa[np] = q; else{ RG int nq = ++tot; fa[nq] = fa[q], len[nq] = len[p] + 1; trans[nq] = trans[q]; fa[q] = fa[np] = nq; while(p && trans[p][c] == q) trans[p][c] = nq, p = fa[p]; } }}int main(RG int argc, RG char *argv[]){ n = Input(); for(RG int i = 1; i <= n; ++i) Extend(a[i] = Input()); for(RG int i = 1; i <= n; ++i) Extend(a[i]); for(RG int i = 1, nw = 1; i <= n; ++i){ printf("%d ", trans[nw].begin() -> first); nw = trans[nw].begin() -> second; } return 0;}

转载于:https://www.cnblogs.com/cjoieryl/p/8931885.html

你可能感兴趣的文章
MVC 5使用ViewBag(对象)显示数据
查看>>
python多版本共存
查看>>
ajax处理select下拉表单
查看>>
30+学习Web设计和开发的优质新鲜资源
查看>>
“每天都被自己帅到睡不着” 用古文怎么说?
查看>>
Jmeter:Java request
查看>>
美图、魅族、Kylin多个一线案例,尽在周末美图互联网技术沙龙
查看>>
京东X无人超市落户西安大雁塔 全球首个5A景区店诞生
查看>>
全时联网PC能否带动PC市场销量上升?
查看>>
内蒙古喜迎2019年瑞雪 结束“贫雪”症
查看>>
黑白镜头下黄山云海 宛如水墨画境
查看>>
研究:多因素影响粮食安全 应早做规划避免粮食短缺
查看>>
和大牛之间的差距
查看>>
哥斯达黎加巨型石球博物馆升级 新设施4月投用
查看>>
94岁菲律宾首富、SM控股集团主席施至成睡梦中离世
查看>>
必胜客小猪佩奇主题餐厅亮相羊城 年味十足
查看>>
税收盈余前景差 德拟加强向国际大型企业增税
查看>>
区块链热度持续下降,创业公司或将批量死亡
查看>>
日产雷诺联盟2018年全球销量创新高
查看>>
辣评10月自主轿车销量:帝豪下滑 “寒冬”之下取暖还得靠新能源
查看>>