04 2022 档案

摘要:##题面 传送门 给定一个长度为 \(n\) 的序列 \(s\) 以及 \(Q\) 个询问,每个询问为:求 \(s\) 的左端点在 \([a,b]\),右端点在 \([c,d]\) 的子区间中,最大的中位数。 \(1≤n≤20000\),\(1≤Q≤25000\)。保证 \(a<b<c<d\)。强制 阅读全文
posted @ 2022-04-29 22:32 realFish 阅读(44) 评论(0) 推荐(0)
摘要:##题面 \(N\) 个点 \(M\) 条边的无向图,询问保留图中编号在 \([l,r]\) 的边的时候图中的联通块个数。 传送门 ##题解 首先考虑暴力。从 \(l\) 到 \(r\) 枚举每条边,若当前两点已连通,则不计数;否则将连通块数量-1。另一种方法是迭代地统计连接两不连通点的边出现次数 阅读全文
posted @ 2022-04-22 15:51 realFish 阅读(28) 评论(0) 推荐(0)
摘要:如何将树上的一段路径转化为区间问题?我们可能会想到树上莫队中利用欧拉序性质的做法,但其不具有普适性,对于很多区间问题,难以将出现两次的元素减掉。而树链剖分与动态树都可以很好地解决这类问题。 ##树链剖分 树链剖分也称为重链剖分,适用于形态结构不发生变化的树(即静态)。 将树上所有边分为重边和轻边,每 阅读全文
posted @ 2022-04-19 16:21 realFish 阅读(94) 评论(0) 推荐(0)
摘要:##题面 传送门 《探险者笔记》由 \(n\) 个关卡组成,每个关卡有一个难度 \(b_i\),通关顺序没有要求。同时有 \(m\) 个成就,第 \(i\) 个成就需要你恰好完成 \(sum_i\) 个关卡,且刚好分别是 \(a_{i_1},a_{i_2},...,a_{i_{sum_i}}\)。完 阅读全文
posted @ 2022-04-13 19:11 realFish 阅读(62) 评论(0) 推荐(0)
摘要:##题面 传送门 有 \(N\) 个矩形,给定在平面直角坐标系中的左下角、右上角坐标,以及放置的顺序。求每个矩形是否有部分被覆盖。 \(1≤N≤10^5\),坐标为不超过 \(10^9\) 的非负整数。保证矩形有面积。 ##题解 这是一道CDQ分治的好题。 分析此问题,可以发现是一个五维偏序,难以直 阅读全文
posted @ 2022-04-12 15:19 realFish 阅读(51) 评论(0) 推荐(0)
摘要:##CDQ分治 用于解决偏序问题。 《算法竞赛进阶指南》中,称CDQ分治为“基于时间的分治算法”,其实是偏序问题的一种特殊形式。 ###二维偏序 在学习线段树和树状数组时,已经可以利用排序+数据结构 \(O(N\log{N})\) 解决二维偏序问题。同样,CDQ分治也行。 有 \(N\) 个元素,每 阅读全文
posted @ 2022-04-10 14:50 realFish 阅读(75) 评论(0) 推荐(0)
摘要:##Preface 刚看到题目时还以为是云南省选…… 人生中第一道黑题! 想当年看大佬写猪国杀(那时还是黑题)时无比仰慕,却始终认为NOI/NOI+/CTSC是多么遥不可及的高峰…… 回想一年前,我也就只有橙黄的水平,对稍微高级一点的算法毫无涉猎。当时对OI也没有什么热情,只会线性DP,连深搜广搜都 阅读全文
posted @ 2022-04-06 19:21 realFish 阅读(62) 评论(0) 推荐(0)
摘要:##题面 传送门 给定一个长度为 \(N\) 的序列 \(a\) 以及 \(M\) 次询问,每次询问为三个区间 \([l_1,r_1],[l_2,r_2],[l_3,r_3]\)。把三个区间中同时出现的数一个一个删掉,问最后三个区间剩下的数的个数和。 注意这里删掉指的是一个一个删,不是把等于这个值的 阅读全文
posted @ 2022-04-05 20:18 realFish 阅读(95) 评论(0) 推荐(0)
摘要:##二次离线莫队 对于普通莫队,时间复杂度为 \(O(N\sqrt{M})\) 乘以每次增加、删除操作的时间复杂度,一般为 \(O(1)\)。其不为 \(O(1)\) 时,但满足增加或删除操作其中至少有一个为 \(O(1)\) 时,我们也可以用回滚莫队 \(O(N\sqrt{M})\) 实现。然而, 阅读全文
posted @ 2022-04-04 12:34 realFish 阅读(68) 评论(0) 推荐(0)