文章分类 - OI 题解
收录 OI 时期题目解析(自 2025.04.05)。
摘要:UTS Open '21 P7 - April Fools 题解 知识点 插入计数 DP。 分析 首先可以看出,这道题目是一道计数 DP,且在贪心地升序排序之后,我们的问题会变得更好求解。 其次,一个数据范围在 \(O(n^3)\) 的排列计数题,很容易想到插入 DP,那么我们就有了基本的思路: 维
阅读全文
摘要:冒泡排序二合一 题解 知识点 线段树,树状数组,主席树。 题意简述 给定一个排列 \(a\),有下列两种询问: 给定 \(l,r,k,x\),求将 \(a\) 的区间 \([l,r]\) 冒泡排序 \(k\) 轮之后,\(x\) 这个数在数组中的位置。 给定 \(l,r,k,x\),求将 \(a\)
阅读全文
摘要:AT_cf16_exhibition_final_f Intervals 题解 知识点 贪心,DP。 分析 可以证明有一个区间一定不动,分奇偶即可。 接下来很直观地可以感受到要把区间分到两边,且短的放在离不动区间近的会更优,所以我们降序排序。 进一步地,把区间对半分开放到左右也会让答案不劣,这就与初
阅读全文
摘要:[ROIR 2018] 管道监控 (Day1) 题解 知识点 Trie,Hash,树形 DP。 分析 其实很容易就可以想到全部解法,考虑 DP。 由于字符串长度较长,肯定有一维需要用来记延后处理的字符串,然后我们发现状态就没别的了,于是设 \(f_{u,i}\) 表示 \(u\) 节点处选取字符串往
阅读全文
摘要:[ROIR 2022] 礼物 (Day 2) 题解 知识点 链表。 分析 首先看到数据范围 \(k\le\min(100,n)\),说明复杂度与 \(k\) 有关,那么我们就可以考虑暴力一点地解决这个问题。 一开始我们可以想到按顺序插入数值,这样会有较好的性质,比如从大到小插入一个 \(u\) 时,
阅读全文
摘要:[ROIR 2024] 树根 (Day 1) 题解 知识点 树剖,线段树,二分。 分析 首先可以想到二分上界 \(lim\),那么我们贪心地从深度最大的节点开始遍历,如果深度 \(>lim+1\),就暴力地往上找 \(lim-1\) 级祖先,然后和根连一条额外的边。一直重复上述过程直到所有点深度都
阅读全文
摘要:[ROIR 2024] 二叉树的遍历 (Day 2) 题解 知识点 分块。 分析 首先考虑对查询 \(u\) 有影响的操作: 子孙节点: 当 \(c_u = 0\) 时,它的左子树需要计入。 当 \(c_u = 1\) 时,它的左右子树都需要计入。 祖先节点: 设某个祖先为 \(anc\)。 当 \
阅读全文
摘要:[COI 2019] IZLET 题解 知识点 构造,并查集。 分析 Sub 1 将 \(1\) 的边缩点,此时所有相连的点对颜色互不相同,那么连接就很容易。 可以考虑找一个点作为 \(1\),其余都是 \(2\),并与它相连。 Sub 2 考虑往回找颜色相同的点,其实比较简单。假设从 \(1\)
阅读全文
摘要:[NOIP2024] 树上查询 题解 知识点 LCA,偏序,扫描线,线段树。 分析 法 1 考虑不断从树底往上合并,那么我们就可以得到一堆连续段,在每个节点 \(u\) 处记加入 \(u\) 后哪个连续段连了起来,记为 \([l_u,r_u]\),然后就可以做扫描线。 第一步 DSU 求出即可,后面
阅读全文
摘要:[NOIP2024] 树的遍历 题解 知识点 树形 DP。 题意简述 给定一棵树,并给定 \(k\) 条关键边,以其中任意一条为根,对树的边进行 DFS 遍历建新树,问有多少种新树。 分析 考虑画图理解,发现对于一种新树,能成为它的根节点的只有一条从叶子到叶子的链上的边,因为每个非叶节点周围的新边会
阅读全文
摘要:[NOIP2024] 遗失的赋值 题解 知识点 组合数学。 分析 首先判断一下数据合法性,然后 \(d\) 就没有了用处。 将 \(c\) 排序,发现可以容斥一下,统计方案只需考虑相邻两个数之间的关系和首尾的特殊处理。 那么相邻两个数之间的关系可以考虑容斥,把 \(v^{2(c_{i+1}-c_i)
阅读全文
摘要:[NOIP2024] 编辑字符串 题解 知识点 贪心。 题意简述 给定两个 01 序列,规定每个序列某些位置可以进行左右互换操作。 要求求出操作后两序列一一对应相同的值最多有多少。 题目分析 其实可以很简单地想到一个贪心:将能对上的就对上。 然后发现这是对的,因为能互换的位置是固定的,这就导致先把最
阅读全文
摘要:[JOI Open 2023] 花园 / Garden 题解 知识点 单调队列。 分析 首先可以看出所有的坐标范围都只需要在 \([0,2D)\) 取到即可。 这类求矩形面积相关的题目有一个套路:枚举左下角,那么它的两维范围是 \([0,D)\)。 A 类比较简单,它的存在只是让我们固定了最小范围,
阅读全文
摘要:[CSP-S 2025] 员工招聘(employ)题解 知识点 组合数学,容斥,计数 DP。 分析 组合计数 首先对于状态的定义,我们能够想到与大小比较有关,因为这里的大小比较一直在变化,如果能够将它装入状态,将会极大地便利我们的决策。 设状态为 \(f_{i,j,k}\),比较常规的两维 \(i,
阅读全文
摘要:[CSP-S 2025] 谐音替换(replace)题解 知识点 Trie,ACAM,Hash。 分析 首先排除一些 corner case: \(s_1 = s_2\):需要直接扔掉,虽然对于一些算法没有影响,但是保险起见。 \(|t_1| \neq |t_2|\):输出 \(0\) 即可。 现在
阅读全文
摘要:[CSP-S 2025] 社团招新(club)题解 知识点 贪心。 分析 首先考虑没有 \(\le \frac{n}2\) 的限制,直接选最大的,那么会生成一种方案。 然后再加入限制,直接把最多的那个会减少的值都求出来排个序即可。 反思 第一题大概 \(45\) min 结束,打暴力稍微有点犹豫。
阅读全文
摘要:[CSP-S 2025] 道路修复(road)题解 知识点 状压,最小生成树(MST),归并。 分析 首先考虑缩小 \(m\),这个 trick 非常经典,在 P3639 [APIO2013] 道路费用 - 洛谷 (luogu.com.cn) 中就有,利用 Kruscal 贪心性质把不可能存在的边删
阅读全文
摘要:[集训队互测 2015] 上帝之手 题解 知识点 线段树,分块。 分析 约定 定义更换:\(l_i\to lim_i,d_i\to del_i\)。 定义查询 \(F(l,r,x)\)(如果 \(x\) 空缺,默认为 \(lim_{l-1}\))表示 \(x\) 一直做 \(\to \min\{ x
阅读全文
摘要:P9001 [CEOI 2022] Parking 题解 前言 笔者认为自己的分析较有利于代码实现,而且理解也来的容易。 知识点 构造,模拟,图论,环,链。 分析 暴力 首先对于 \(M\le 4\) 的部分有暴力 BFS,可以 \(O(m^2(2m)!)\) 过。 性质 然后我们考虑找性质,对于一
阅读全文
摘要:P12503 「ROI 2025 Day1」索契游乐园 题解 知识点 二分,三分,贪心,数学。 分析 首先可以知道我们可以把折返的贡献分为两边独立的贡献,只要一边移动的贡献设为 \(t\),另一边设为 \(2t\) 即可。 那么将坐标 \(<x_0\) 和 \(>x_0\) 的分开到两个数组中,重新
阅读全文

浙公网安备 33010602011771号