NOIP2024集训Day44-45 图论
NOIP2024集训Day44-45 图论
A. [BZOJ3706] 反色刷
欧拉回路,易于发现有解的充要条件是没有奇点。
我们需要注意到,白边不一定不走,只要走偶数次就可以。
所以我们可以将白边堪称两条黑边,这样对每个点的奇偶性是没有影响的,而且同样是求欧拉回路。
用并查集先维护出连通块之后,只需要记录一下每个连通块是否有黑边,如果有黑边就要刷一次,没有就不要。无解同样用奇偶性判断。
B. [省选联考2020 B卷] 丁香之路
很经典的模型(但是我不会),首先起点和终点连一条边,然后考虑加最少的边使得有欧拉回路。
欧拉回路有两个条件,度数都是偶数很好满足,直接把相邻的奇点连边肯定最优,但还需要满足连通的条件。
考虑到图上边权的特殊性,我们显然只需要使用形如
时间复杂度
C. [AHOI2014] 骑士游戏
SPFA 处理有后效性 dp。
设
直接 dp 存在后效性,所以我们用 SPFA 来跑这个 dp。
每更新一个点 A 的 dp 值,就会有若干个点的 dp 值可能被更新,即可以分裂出点 A 的那些点。所以 A 出队后一旦 dp 值被更新,就把那些点入队。
初始时把所有点入队。
D. [APIO2015] 雅加达的摩天楼
分块思想 + SPFA + 建图优化。
看到题目第一眼肯定会想到最短路,但最坏情况有
所以我们考虑用分块的思想来优化建图。
,暴力加入每一条边,每次最多 条边。 ,对于每个点添加 个辅助点,这里可以理解成一栋楼有许多层,每一层一步能走的范围都不同,然后每一层分别连边,每一层到楼底连边。对于一只 doge,从楼底到 对应的楼层连边。边数是 的。
综上,总边数和总点数都是
E. [JOI2020 Final] 奥运公交
直接跑最短路,然后考虑翻转每一条边后怎么快速地计算代价。
显然如果这条边不在
否则,这样的边只有
F. [NOIP2017 提高组] 逛公园
首先肯定要求最短路,然后就变成 dp 了。
令
然后记搜就完了。
解释一下
对于判断
M. [CF1521D] Nastia Plays with a Tree
看了官解。
有一种贪心的构造法。如果一个点,有至少两个儿子节点,就不用让它与父节点连边,它的父节点就可以去连接别的儿子,而对于这一步来说,丢失的边数量都是
那么做法就很简单了:如果只有一个子节点,接上去;否则断掉它与父节点的连边,并且任选两个子节点上去。
本文作者:Leirt_Abu
本文链接:https://www.cnblogs.com/Leirt/p/18447638
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步