上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 85 下一页
摘要: 传送门 考试的时候以为切入点应该是在sam上维护不相交子串,于是不会做 写了个暴力还忘删调试了 其实这题只需要找到两个不相交的相同子串 维护出endpos集合中的最小值和最大值就可以了 点击查看代码 #include <bits/stdc++.h> using namespace std; #def 阅读全文
posted @ 2021-12-13 20:26 Administrator-09 阅读(4) 评论(0) 推荐(0)
摘要: 传送门 CF1063F 考场思路是将fail树加入sam形成的DAG中,这样一个串是另一个串的条件是可达另一个串 但复杂度是 \(O(n^2\sqrt n)\) 的 发现首先可以钦定选中的最短的串长度为1,且所有选中的串长度恰好相差1 于是考虑DP,令 \(dp_i\) 为恰好以点 \(i\) 为起 阅读全文
posted @ 2021-12-13 20:22 Administrator-09 阅读(38) 评论(0) 推荐(0)
摘要: 传送门 传说中的对联算法? 另一篇题解 当出现给定一些模式串和一些文本串,询问某几个模式串被匹配了多少次时: 建出AC自动机,建出fail树 在自动机上跑文本串,每到一个节点就在对应的dfs序上+1 处理询问时直接查子树区间和即可 貌似也可以在广义SAM上跑,线段树合并维护right集合,然后查在给 阅读全文
posted @ 2021-12-12 19:47 Administrator-09 阅读(13) 评论(0) 推荐(0)
摘要: 传送门、 当题目是求所有点对之间操作的最值的时候记得随机点对+卡时 当题目是要求最值的时候记得随机决策点+卡时 首先放到广义SAM上,就变成了要求一棵树上 当前节点权值+当前节点子树内所有点对在另一棵树上lca的深度 的最大值 关于「当前节点子树内所有点对在另一棵树上lca的深度的最值」: 注意最值 阅读全文
posted @ 2021-12-12 19:19 Administrator-09 阅读(8) 评论(0) 推荐(0)
摘要: 传送门 最后一分钟才调出来,然后还不知道自己是在用假的暴力拍假的正解,于是就爆零了 发现 \(k\) 很小,所以每次修改只需要枚举左右加起来一共 \(8k\) 长的区间 剩下的区间的值除了特殊字符都是一样的 特殊字符的值是其他字符的值和 \(\frac{k}{2}\) 取min 分块维护序列可以做到 阅读全文
posted @ 2021-12-12 19:07 Administrator-09 阅读(7) 评论(0) 推荐(0)
摘要: 你们曾经有个学长啊,他叫 ICE……阅读全文 阅读全文
posted @ 2021-12-10 07:59 Administrator-09 阅读(57) 评论(0) 推荐(0)
摘要: 传送门 尝试放到PAM上,跳fail的时候将判断改成等于,但炸了半个下午 手模后发现一旦有一个元素成为odd的子节点,它就可能无法被后面的偶长度反回文串考虑了 于是认为PAM做不了 但我傻了,PAM是可以做的 因为最终的串一定是偶长度的,所以我们可以强制不让odd有子节点 当跳完fail发现现在跳到 阅读全文
posted @ 2021-12-09 20:48 Administrator-09 阅读(17) 评论(0) 推荐(0)
摘要: 一个字符串只有 \(O(n)\) 个本质不同的回文子串 证明:在Manacher算法中,只有 \(r\) 右移时才会产生新的回文子串(否则一定存在对称的回文子串) 而 \(r\) 右移不超过 \(n\) 次,故一个字符串只有 \(O(n)\) 个本质不同的回文子串 阅读全文
posted @ 2021-12-09 13:57 Administrator-09 阅读(4) 评论(0) 推荐(0)
摘要: 因为各位大佬的manacher板子实现上相差甚远 小蒟蒻整合了一个相对好写的板子以便日后贺复习 这里的回文半径 均为从位置 \(i\) 到回文串最右端位置包含的字符个数,也即包含位置i int n; char s[N], t[N], *c; int d[N], ans; scanf("%s", t) 阅读全文
posted @ 2021-12-09 08:54 Administrator-09 阅读(60) 评论(0) 推荐(0)
摘要: 每个区间里有多少类数,以及每类数被多少区间包括 用莫队怎么做? 阅读全文
posted @ 2021-12-08 17:08 Administrator-09 阅读(5) 评论(0) 推荐(0)
上一页 1 ··· 44 45 46 47 48 49 50 51 52 ··· 85 下一页