分类: 图论

  • MOCK PTS- 20231122 B – 迷失 – 强连通图所有环长度之最大公约数

    题意简述

    给定不含重边的有向图 $G$,设其邻接矩阵为 $A$,定义其元素的“加”为逻辑或,“乘”为逻辑与。问 $A^c,c=1,2,\cdots$ 在何时出现循环节($c=k$),以及最小循环节长度 $d$(即,$A^k=A^{k+d}$,$k,d$ 均最小)。

    题意转化

    在原图上,从 $u$ 出发,可用恰 $b$ 步走到 $v$,则在 $b$ 次迭代后的图上有有向边 $(u,v)$。问最少迭代多少次后图的形态出现循环节。

    强连通图的所有环环长的最大公约数

    任意找一点 $u$,只需考虑经过 $u$ 的所有环。

    考虑有一不经过 $u$ 的环,其长为 $a$;另有一经过所有点的环(本图强连通),其长为 $b$。则有 $\gcd(a,b,a+b)=\gcd(a,a+b)$。

    我们任意找一棵本图的搜索树。设其根为 $u$。设节点 $v$ 的深度为 $\newcommand\dep{\operatorname{dep}}\dep(v)$。设某经过 $u$ 的有限长度的环依次经过了非树边(横叉边、返祖边) $(v_1,w_1),(v_2,w_2),\cdots,(v_t,w_t)$。那么其环长在答案中可以被 $\gcd(|\dep(v_i)+1-\dep(w_i)|,i\in\{1,2,\cdots,t\})$ 取代。

    可得 $w_i$ 一定是 $v_{i+1}$ 的祖先。我们删去 $(v_1,w_1)$,得到另一个环;这环与原来环的长度差为 $\dep(w_1)-\dep(v_1)-1$。这两环均在答案中作出贡献;又由于 $\gcd(a,b)=\gcd(a,b-a)$,则我们将原来的环长等价替换为两个数:其一即 $|\dep(w_1)-\dep(v_1)-1|$,其二为现在的环长。再继续删除 $(v_2,w_2),\cdots$,便等价地换为 $t+1$ 个数。

    因此我们遍历一遍搜索树,就可以在 $\operatorname{O}(n\log n)$ 的时间内求出所有环环长之 $\gcd$。 (更多…)

  • MOCK NOIP+ 20221203 日志

    还是张隽恺一如既往的恶趣味。

    简略题解

    (更多…)

  • 转载 – 网络流/二分图相关笔记

    本来已经写了不少,但又发现了前人造的质量上乘的轮子,就没有为难自己了。

    以下文章均转载自 command-block 的洛谷博客。

    网络流/二分图相关笔记(干货篇)

    网络流/二分图相关笔记(应用篇)

    模拟费用流小记

  • AtCoder ABC236G – Good Vertices – 题解 – 矩阵乘法优化DP

    昨晚参与AtCoder ABC 236时认为G题似乎可做,直到看到数据范围才发现事情没有那么简单。

    由于最近学习离线数据结构,又见识过一道题意接近的题目,故想到整体二分,二分每一个节点第一次能恰好经过$L$条边到达的时间,然后考虑DP求解。设计状态$f(i, x)$表示在该图上经过恰好$i$次转移能否到达点$x$。但很快发现每一次二分时均要重新在图上运行DP,时间复杂度无法承受。况且DP递推转移的次数$L$高达$10^9$,甚至不可能是线性的复杂度。

    今天查看题解,发现有几个重要的,从未考虑过的trick:

    1. 既然要求能够经恰好$L$次转移到达的最早的时间点,则我们将每条边的边权$w$设为其加入图中的时间,则可以转化成恰有$L$条边的最小瓶颈路。
    2. 发现$L$很大,所以考虑通过矩阵乘法加速递推,也即所谓倍增优化DP的一种。

    (更多…)