随笔分类 -  字符串算法 -- Trie树

摘要:【Luogu3732】[HAOI2017]供给侧改革(Trie树) 题面 "洛谷" 给定一个纯随机的01串,每次询问[L,R]之间所有后缀两两之间的LCP的最大值。 题解 一个暴力的想法是构建SA之后把所有位置按照rank排序,每次询问相邻的两个LCP就行了,然后拿set 阅读全文
posted @ 2019-03-24 23:07 小蒟蒻yyb 阅读(313) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4477】[JSOI2015]字符串树(Trie树) 题面 "BZOJ" 题解 对于每个点维护其到根节点的所有字符串构成的Trie,显然可持久化一下就很好写了。 然后每次询问就是u+v2lca,写个树剖维护LCA就好了。 cpp include include include 阅读全文
posted @ 2018-09-28 14:31 小蒟蒻yyb 阅读(427) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4260】Codechef REBXOR (Trie树) 题面 "BZOJ" 题解 两眼题。第一眼不会做,第二眼好简单。。。 前缀异或和一下,拿Trie树维护求一个在这个端点以左的最大值,右侧同理,取个最大值即可。 cpp include include include using n 阅读全文
posted @ 2018-09-28 10:00 小蒟蒻yyb 阅读(279) 评论(0) 推荐(0) 编辑
摘要:【CF888G】Xor MST(最小生成树,Trie树) 题面 "CF" "洛谷" 题解 利用Kruskal或者Prim算法都很不好计算。 然而我们还有一个叫啥来着?B啥啥的算法,就叫B算法吧。 思想是对于每个点找到一条最小边,并且将这条边连上,不难证明每次至少连上了n/2个点。 阅读全文
posted @ 2018-08-15 09:39 小蒟蒻yyb 阅读(926) 评论(0) 推荐(1) 编辑
摘要:【BZOJ2434】阿狸的打字机(AC自动机,树状数组) 先写个暴力: 每次打印出字符串后,就插入到Trie树中 搞完后直接搭AC自动机 看一看匹配是怎么样的: 每次沿着AC自动机走,在每一个节点都跳fail指针 如果有x串的末节点,就给答案+1 这样的话没有必要存下每个串 阅读全文
posted @ 2018-01-20 15:49 小蒟蒻yyb 阅读(476) 评论(8) 推荐(0) 编辑

点击右上角即可分享
微信分享提示