并不对劲的spoj1811】的更多相关文章

题意是求两个字符串的lcs,两个串都只包含小写字母. 本题既可以用后缀自动机,又可以用后缀数组. 对于后缀自动机,就是一道模板题,直接对于一个字符串建后缀自动机再用另一个串查询就行. 对于后缀数组,其实也是一道模板题,但不是后缀数组的模板,而是用后缀数组求同一字符串的两个后缀的最长公共前缀的模板. 用h(x)表示排序前在第x位的后缀s1与排序后排在s1前一位的s2(记为prev(x))的最长公共前缀. 这样就会发现这些性质: 1.想要求出排序前位于k1,k2的后缀的最长公共前缀,只需要(用后缀数…
题意是求多个串的lcs. 这也是道后缀自动机的模板题.对于任意一个字符串建后缀自动机,用其他串查询就行.对于后缀自动机的每个状态要额外记匹配到当前状态的最大长度. 和spoj1811的区别在于这道题不方便后缀数组做.当然,如果不嫌很多个串用奇怪的字符连起来麻烦.判断时常数极大的话,也可以试试. 字符串总数不多,好像还真行. #include<iostream> #include<iomanip> #include<cstdio> #include<cstring&…
SPOJ1811 && SPOJ1812 LCS && LCS2 非常神奇的两道题... 题目大意: 给定n个字符串,求最长公共子串 做法1: 后缀数组: 把字符串连起来建成一个长串 二分长度 --> 最长的长度即可 二分判断条件,有一组height分组中出现了所有子串的某一后缀 做法2: 后缀树: 把字符串连起来建成一个长串 建出后缀树 只有有一个点的子树中出现了所有的子串的某一后缀 它的深度就可能成为长度 当然,要带上map 自然,现在是无法维护的. 注意到建树的…
spoj1811  给两个长度小于100000的字符串 A 和 B,求出他们的最长公共连续子串. 先将串 A 构造为 SAM ,然后用 B 按如下规则去跑自动机.用一个变量 lcs 记录当前的最长公共子串,初始化为0.设当前状态结点为 p,要匹配的字符为 c,若 go[c] 中有边,说明能够转移状态,则转移并 lcs++:若不能转移则将状态移动到 p 的 par ,如果仍然不能转移则重复该过程直到 p 回到根节点,并将 lcs 置为 0:如果在上一个过程中进入了能够转移的状态,则设 lcs 为当…
一些感想 现实并非游戏,并不支持反复刷关 猎人和防御工事一起被老山龙摧毁了: 猎人惨死雨中,结云村永无放晴之日: 猎人被狂龙病毒侵蚀,天空山上黑蚀龙泛滥. 好像这才是怪物猎人系列的真实结局呢 day 0 和吕爷立下了有关进省队的flag day 1 t1:给1个大数字串和\(m\)个小数字串,每个小串有权值,大串中有些位置的数字是确定的,有些位置是空的,需要填.定义一种填数方式生成的大串的价值为"是它的子串的小串的权值积(重复算多个)"开"是它的子串的小串的个数(重复算多个)…
想要很对劲的讲解,请点击这里 题目大意 有一棵\(n\)(\(n\leq 50000\))个节点的树,有边权 求一条路径使该路径的边权平均值最接近给出的一个数\(k\) 输出边权平均值下取整的整数部分 题解 有关路径的边权平均值可以二分来做 假设已二分出边权平均值与\(k\)的差不超过\(m\),则应存在一条简单路径,路径上的\(p\)条边满足: \[-m\leq\frac{\sum_{i=1}^{p}{w_i}}{p}-k\leq m\] 两边同乘\(p\),得: \[-m*p\leq\sum…
FFT是一个很多人选择背诵全文的算法. #include<algorithm> #include<cmath> #include<complex> #include<cstdio> #include<cstdlib> #include<cstring> #include<ctime> #include<iomanip> #include<iostream> #include<map> #…
据说这些并不对劲的内容是<信息学奥赛一本通提高篇>的配套练习. 并不会讲Trie树. 1.poj1056-> 模板题. 2.bzoj1212-> 设dp[i]表示T长度为i的前缀能否被理解.这样,对于所有满足T[(x+1)...i]是一个字典中的单词的x,dp[i]|=dp[x]. 所以,就可以将所有字典中的单词倒着建一棵Trie树,计算i时将T长度为i的前缀倒着在Trie树中匹配. 最后从后往前枚举i,第一个dp[i]=1的i就是答案. #include<algorithm…
据说这些并不对劲的内容是<信息学奥赛一本通提高篇>的配套练习. 先感叹一句<信息学奥赛一本通提高篇>上对kmp的解释和matrix67的博客相似度99%(还抄错了),莫非matrix67藏在编者之中? 但这不重要,因为并不对劲的人不会对kmp作出任何解释. 课后练习: 1.bzoj1355-> 可以将题目中给出的字符串看成形如这样的串: 那么,对于其中的某一位: 它到当前前缀的第二个循环节的开始组成的子串和前缀相等: 所以,对于当前位置x,fail[x]就是它到当前前缀的第二…
传送门-> 这题的正确做法是splay维护这摞书. 但是并不对劲的人选择了暴力(皮这一下很开心). #include<algorithm> #include<cmath> #include<cstdio> #include<cstdlib> #include<cstring> #include<iomanip> #include<iostream> #include<map> #include<qu…