摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2946 [算法] 建立多串后缀树 对于后缀树上的每个点 , 判断该节点所代表的等价类是否在所以字符串中出现 , 用该点的深度更新答案 时间复杂度 : O(NL) [代码] 阅读全文
摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2806 [算法] 首先建立广义后缀自动机 注意到问题具有单调性 , 不妨对于每组询问二分答案mid 如何检验? 记fi表示前i个字符最多能选几个 , 有转移方程 : fi = max{ 阅读全文
摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2302 [算法] 记 s[i] 表示已经确定的m人中编号大于等于i的人数 考虑dp , 记fi,j表示剩余(n - m)人中编号大于等于i的人已经确定j个人的编号的方案数,则:f[i][ 阅读全文
摘要:
[题目链接] https://codeforces.com/problemset/problem/666/E [算法] 首先建立广义后缀自动机 对于自动机上的每一个节点建一棵动态开点线段树 对于每次询问 , S[pl..pr]所表示节点可以在多串后缀树上倍增得到 那么我们需要的就是计算该节点中出现次 阅读全文
摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2298 [算法] 考虑用总人数 - 最多人说真话 显然 , 对于每个人 , 如果他说的是真话 , 那么他的排名必然在[ai + 1 , n - bi]中 , 否则不合法 统计出每个合法区 阅读全文
摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4872 [算法] 首先发现 , 对于一个开关 , 按下2次和没按是等价的 , 因此每个开关最多按一次 考虑k = n的情况 , 只需简单倒序贪心即可 考虑随机的情况 , 由观察可知一个开 阅读全文
摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1856 [算法] 不妨建立平面直角坐标系 将“当前已经放了的字符”看作横坐标 , 1的个数与0的个数差看作纵坐标 那么问题就转化为从(0 , 0)出发 , 每次向右上或右下移动一步 , 阅读全文
摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2653 [算法] 显然 , 问题具有单调性 , 不妨对于每组询问首先二分答案mid 将大于等于mid的数看作1 , 小于mid的数看作-1 , 问题转化为判断是否有左端点在[l1 , r 阅读全文
摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4070 [算法] 考虑将每个"Doge"向其所能到达的楼连边 直接SPFA求单源最短路可以获得57分 那么 , 怎样拿到满分呢? 我们发现这张图的边的数量达到了NM的数量级 考虑分块 , 阅读全文
摘要:
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4199 [算法] 首先 , 题目中有一条性质 : 若两个子串是“r相似”的 , 那么它们同样是(r - 1)相似 ,(r - 2)相似 , ... , 0相似的 不妨考虑构建给定字符串的 阅读全文