摘要: 题解: 我们考虑对第一个串建SAM 另一个串在第一个上跑 我们预处理出第一个串在parent树中以当前字符结尾产生的价值且下传到儿子节点 等于每个节点维护了 他在parent 树中到根这条链的所有子串的价值和 那么我们在来计算合并价值 第二串跑的时候 找到位置匹配的最远位置 而且我们必然可以得到他的 阅读全文
posted @ 2018-09-12 20:38 wang9897 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题解: 首先对于原串建SAM 我们考虑对于每次查询区间[c,d] 我们考虑二分答案 然后我们只需判定[a,b]中是否会产生这个子串即可 首先我们可以倍增在parent树上找到包含这个子串的节点 然后只需判断其子树中叶子节点是否出现在[a-mid+1,b]中 这个可以通过线段树合并来实现即可 4556 阅读全文
posted @ 2018-09-12 20:24 wang9897 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题解: 在trie树上构造SAM 首先对于操作1 我们可以边加入边维护答案 通过增减dis[x]-dis[fa[i]]来得到 对于操作二 直接dfs建树即可 和原本构造trie树一样 对于操作三 用LCT维护 具有'价值'节点出现的次数 这个用LCT维护子树信息可以达到 然后就解决问题了 4545: 阅读全文
posted @ 2018-09-12 19:43 wang9897 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题解:上树的超级钢琴 我们考虑dfs的时候直接由父亲转移而来 那么我们对于每个节点则维护是这点到根路径上的分布情况 那么转化为序列上的问题 这也就和超级钢琴本质上是一样的了 4458: GTY的OJ Description 身为IOI金牌的gtyzs有自己的一个OJ,名曰GOJ。GOJ上的题目可谓是 阅读全文
posted @ 2018-09-12 15:23 wang9897 阅读(266) 评论(0) 推荐(0) 编辑