当前位置: 首页 > news >正文

图论杂题选做 20250802

CF555E Case of Computer Network

先缩边双,同一个边双一定能定成两两点对互相可达的样子。

然后就变成了树上的限制,可以瞎树上差分一下,时间复杂度线性。

QOJ5437 Graph Completing

找到 DFS 树,那么现在的要求就是没有树边不被非树边覆盖。

直接容斥,钦定原图中若干条割边不被非树边覆盖,删掉这些边后形成若干连通块,每个连通块 \(S\) 的方案数是 \(2^{\binom{\lvert S \rvert}{2} - \# E(S)}\)

剩下的部分可以直接 DP:\(f_{u, i}\) 表示以 \(u\) 为根的子树中,\(u\) 所在连通块大小为 \(i\) 的带容斥系数的方案数,转移是简单的。

实现的时候可以先忽略非树边,最后把答案除掉 \(2^{m - n + 1}\) 即可。

时间复杂度 \(O(n^2)\)

P8456 「SWTR-8」地地铁铁

全是性质,懒得写了。

P7353 [2020-2021 集训队作业] Tom & Jerry

Tom 的策略一定是每次都走割点,最后把 Jerry 逼死。

然后随便换根 DP 一下就好。

还有一种特殊的 case 就是如果有一个点不管 Jerry 在哪都能暴毙那就可以直接走到这个点。

时间复杂度线性。

CF2110E Melody

建二分图,左部点是 \(v\),右部点是 \(p\),每个点连 \((v_i, p_i)\),这样求的就是欧拉路径。

P9394 白鹭兰

这个要求看着就很像双极定向,事实上 \(k = 1\) 的时候就是直接把直径端点拉出来双极定向。

\(V_1, V_t\) 中分别选出两点 \(s, t\) 满足它们在圆方树上都是叶子,考察圆方树上 \(s \rightsquigarrow t\) 这条路径。

思考后可以得到,对于路径上方点连接的不在路径上的圆点,它的子树一定是要分成一个点集;对于路径上的圆点,它一定要和它不在路径上的子树分成一个点集。

这样我们就能计算出选取 \((s, t)\) 时的 \(k_{\min}\),现在的问题是怎么快速找到 \(k_{\min}\) 最小的 \((s, t)\)

这里有一个性质:

\(\text{Property}\):记 \(u = \operatorname{lca}(s, t)\),那么 \(u \rightsquigarrow s\) 一定是一直走重儿子,\(u \rightsquigarrow t\) 一定是先走一步次重儿子,然后一直走重儿子。

证明比较显然,略去。

这样我们就能 DFS 一遍线性得到 \((s, t)\)\(k_{\min}\)

构造是简单的,只需要把 \(s \rightsquigarrow t\) 上所有方点对应的点双的并双极定向一下即可。

时间复杂度线性。

QOJ8824 Slay the Spire

将卡牌看成 \(a_i \xrightarrow{b_i} c_i\),药水看成 \(s \xrightarrow{0} x_i\),额外加一条边 \(s \xrightarrow{0} s\),这样问题就变成了:改一条边的入点需要花费边权的代价,求最小的代价使得图存在一个欧拉回路。

存在欧拉回路就是要求每个点入度等于出度,且图中有边的连通块至多有一个。

我们先来满足第一个条件,实际上我们只需要对 \(out_u > in_u\) 的点,修改它们的出边的入点,直到 \(out_u = in_u\),这样我们就满足了第一个条件。

然后是连通的问题,我们删掉上面修改过的边,找到此时的连通块,如果连通块中有一个点 \(u\)\(in_u > out_u\),那一定有我们之前删过的某些边的入点改到了 \(u\),这样的连通块最后一定是连通的。

剩下的连通块中,每个连通块都需要至少修改一条边的入点,这样才能使得右边的连通块只有一个。这里修改入点的时候,如果连通块中之前删过边,那么可以用这条边替换掉之前删的那条。

时间复杂度 \(O(n \log n)\)

http://www.aitangshan.cn/news/24.html

相关文章:

  • EasyExcel 导入/出通用枚举映射
  • dp09
  • 克隆arcgispro-py3虚拟环境
  • Air780EGH硬件开发必备:UART串口电路设计最佳实践
  • bytes和基本数据类型之间的转换
  • 糟糕,生产环境频繁Full GC,怎么办?
  • CSP/NOIP常用模板大全₍^˶⦁༝⦁˶^₎◞ ̑̑
  • 洛谷P1525 [NOIP 2010 提高组] 关押罪犯(恭喜解锁拆点并查集!!)
  • Score Matching
  • 对象转原始值
  • 通达信配色
  • I2C通信接口 VK2C22B 高抗干扰LED驱动段码液晶驱动芯片
  • 【自学嵌入式:stm32单片机】EXTI外部中断
  • Dify入门系列(1)| Dify 是什么?真能开启低代码 AI 应用开发?
  • 题解:P4368 [Code+#4] 喵呜
  • vue3 vue3-form-element表单生成工具
  • Codeforces 1042G Wafu! 题解 [ 绿 ] [ 数学 ] [ 线性 DP ] [ 前缀和 ] [ 暴力枚举 ]
  • 第二章:Linux基础命令
  • 题解:P4779 【模板】单源最短路径(标准版)
  • 事倍功半是蠢蛋39 cursor 报错user is unauthorized
  • 一个不错的AI写作工具
  • 2025CSP-S模拟赛33 比赛总结