口糊题
主要选自 https://www.luogu.com.cn/problem/list?tag=336,512,440
题目难度:Pupil Expert Master
P13505 OOI2024 巨大柿子
P13506 OOI2024 平行宇宙
Expert 6.2
找出 B 中的一个生成树,其它边随意修改。问题变为 A 是否能找出一个生成树边集与 B 不交。即 B 生成树的反图连通。不连通则图上一定存在两个块没有连边,因此只有当 B 是菊花时才找不到反图生成树。
B 是菊花时特判一下,否则一定能找到非菊花的生成树。最后完全图生成树用 Brouvka 做。
P10628 JOIO2024 废墟图书馆
Expert 6.6
交互库返回信息等价于排列中置换环个数。可以暴力看交换是否会使得置换环变多,最终置换环就有 \(n\) 个。把找可以交换的点进行二分即可。
P10630 JOIO2017 推土机
Pupil 5.3
找出所有的一个点越过另一个点的关系,即 swap 两点。后面直接套最大子段和即可。
P11394 JOIO2019 病毒实验
Master 7.7
把所有可达关系连边,要求缩点后 DAG 零度点最小大小及其数量。考虑内向生成森林,只有根才会算入答案内并且复杂度正确。Brouvka 加并查集求生成树即可。
P11664 JOIF2025 缆车
Pupil 5.7
考虑对于每个 \(l\) 预处理合法的 \(r\)。相当于每个点都要存在一条入边在区间内。
然后询问变成查询区间内小于某个数的个数。
P6118 JOIF2019 独特城市
Master 7.6
只有从某个点出发的最长链上才会产生答案。考虑从直径两端点出发 dfs,用栈维护合法点。根据从点往下的最长和次长链弹栈。发现回到父亲不需要恢复栈因为儿子的贡献仍然在,于是做到 \(O(n)\)。
P9734 JOISC2021 逃走路径
Master 7.2
先让天数最少,再让一天内用时最少。从起点到终点经过多天容易 Floyd 预处理。经过一天内需要对出发时间扫描线。分析单调性,图最多变化 \(O(m)\) 次,然后可做。
P8164 JOIF2022 沙堡
Master 7.4
先根号分治。维护每个点周围比其小的最大点和反过来的答案,要求矩形内入度出度均为零。短边枚举所有区间,长边二分,可以通过各种方法做到 \(O(n\sqrt n\log n)\)。
P12703 KOI2022R2 外环路
Master 7.0
两个连通块最多只有三条边将其连接起来。考虑分治,每次处理跨越两个块的询问,直接对于三条边分别跑最短路即可。
P11948 KTSC2025 完美编号
Expert 6.7
如果有环则环上所有点相等,先缩边双变成树。
发现值相同的点只能占一个联通块,不同的点只能形成一个链。dp 即可。直接换根 \(O(n^2)\),用斜率优化。
P11985 JOIST2025 比太郎之旅
Expert 5.8
首先发现如果到不了终点就是一直往上跳能到达最近的点。扫描线可以找出每个点会跳到哪里。
然后询问时倍增,变成判断两个点能否在一次内跳到,直接生成树重构树即可。
P11987 JOIST2025 集邮比赛
Expert 6.3
将某个颜色出现的头尾位置看成区间,然后如果有两个不交区间则会产生一对永远取不到的。把 \(l\) 看成 0,\(r\) 看成 1,取不到的颜色对就是逆序对个数。
每次交换都能至少使得区间逆序对减一。然后扫描线动态维护当前逆序对数就可以了!
P11993 JOIST2025 迁移计划
Expert 6.0
单点加可以转化成一开始就有然后移动上去。线段树合并维护一下点集。
P12727 KOI2021R2 公共括号子串字典序
Expert 6.8
一些 SA trick。考虑按字典序枚举一个串的子串可以变成 \(l\) 按后缀的字典序排序,假设现在是第 \(i\) 个后缀,然后 \([l,r]\) 没有在排名 \(i-1\) 后缀出现过就行,\(r\) 取值范围是连续区间。
P12730 KOI2021R2 美食推荐
Pupil 5.4
\(f_{i}\) 表示最多覆盖到点 \(i\) 的答案。如果选择一个餐厅就是从所有 \(i\) 子树内 \(dis(i,j)>d\) 的点贡献过来。丢到点分树上做。
P12866 JOIO2025 抽奖
Expert 5.8
容易想到二分答案,然后发现只要确定每个点选多少个红球就能构造一组合法的答案。然后处理出每个点能选的红球数量 \([l,r]\)。只要 \(\sum l\le need \le \sum r\) 即可。
用主席树维护。我写了。被卡常了。题解说可以主席树上二分但是不想写。
一些没啥必要专门写的
- P12865 JOIO2025 冒泡排序机:冒泡排序套路
- P12729 KOI2021R2 最长公共括号子串:类似于 P12727
- P11945 KTSC2025 军事基地:直接扫描线合并
- P10631 JOIO2017 高尔夫:直接建图