随笔分类 -  根号分治

摘要:题目链接 CF444D DZY Loves Strings 解题思路 发现我们只需要预处理每个长度不大于 \(4\) 的字符串所在的区间即可,那么我们实际上需要的字符串是只有 \(4n\) 级别的,下文设 \(4n\) 为 \(m\)。 我们容易发现出现次数 \(> \sqrt{m}\) 的字符串数 阅读全文
posted @ 2025-04-09 15:13 wangmarui 阅读(22) 评论(0) 推荐(0)
摘要:题目链接 at_abc365_f 解题思路 根号分治。 首先有一个显然的贪心,就是能往右走,是一定要往右走的,而剩下的情况,若我们在最高点的上面,那么一直往下走直到可以往右走是最优的,若我们在最低点的下面,那么一直往上走直到可以往右走是最优的。 于是我们就有了 \(O(nq)\) 的做法。 设阙值为 阅读全文
posted @ 2024-08-04 08:25 wangmarui 阅读(39) 评论(0) 推荐(1)
摘要:链接 发现这东西就很根号分治。 考虑两种情况: \(k \le 1000\),这部分直接用前缀和维护然后暴力做,时间复杂度 \(O(kq)\)。 \(k > 1000\),此时 \(n \le 500\),这部分直接预处理答案,时间复杂度 \(O(n^2 k)\)。 两个时间复杂度均正确,因此可以通 阅读全文
posted @ 2024-05-28 21:10 wangmarui 阅读(18) 评论(0) 推荐(0)
摘要:题目链接(luogu) 题目链接(cf) 水 2400。 首先我们容易看出,答案具有单调性,然后无法使用数据结构进行优化,这时我们可以直接根号分治,发现总是有一段连续的区间数是相同的,因此我们直接根号分治套二分即可 AC。 参考代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 阅读全文
posted @ 2024-04-12 18:43 wangmarui 阅读(27) 评论(0) 推荐(0)