摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4319 思维还是不行...这样的构造都没思路... 首先,我们可以按 rank 的顺序从小到大填字母,不能填了就是无解; 为了能让后面有字母可填,现在填的字母就要尽可能小; 考虑排名为 i 的后 阅读全文
posted @ 2018-12-06 21:43 Zinn 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目:http://poj.org/problem?id=3415 先用后缀数组处理出 ht[i]; 用单调栈维护当前位置 ht[i] 对之前的 ht[j] 取 min 的结果,也就是当前的后缀与之前后缀的LCP,其中长度 >= K 的加到答案; 因为单调栈中是一段一段阶梯状的,只存了一段端点的位置 阅读全文
posted @ 2018-12-06 20:58 Zinn 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/contest/504/problem/E 快速查询LCP,可以用后缀数组,但树上的字符串不是一个序列; 所以考虑转化成序列—— dfs 序! 普通的 dfs 序中,子树是一段连续的区间,而这里要查询的是链,自然想到树链剖分后的 dfs 序; 这样一 阅读全文
posted @ 2018-12-06 17:08 Zinn 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4278 每次取两个后缀中字典序较小的那个的首字符; 注意超出去的部分是 inf 而不是 0,因为如果到了比较超出去部分的时候,那就是一个串走到了末尾而另一个没有(或者都到末尾,不过都到末尾就随便 阅读全文
posted @ 2018-12-06 11:33 Zinn 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4275 枚举 \( C \) 在 \( A \) 和 \( B \) 中的位置,然后取它前后的最长子序列; \( n^2 \) DP即可,呵呵。 代码如下: 阅读全文
posted @ 2018-12-06 10:47 Zinn 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3202 参考了博客: https://www.cnblogs.com/zhoushuyu/p/9657640.html https://www.cnblogs.com/DUXT/p/595794 阅读全文
posted @ 2018-12-06 00:18 Zinn 阅读(232) 评论(0) 推荐(0) 编辑