ABC306G & CF1835D

两道题似乎都涉及了一个经典模型:

在一张有向图上,给定起点 s 和终点 t,询问 stts 是否均存在一条长度 =L 的路径(L 是一个 n3 的数)。

首先 st 必须在同一个 SCC 内(考场上没看到互相可达直接以为不可做)。

考虑取出这个 SCC 的任意一颗生成树,则有定理:

设所有非树边 (u,v)|depu+1depv|gcdg,则 xSCC,L,s.t.lL\andg|l,存在包含 x、长为 l 的环。

证明:设当前所有包含 x 的环的 gcdg

  • 若所有 depu+1depv(modg),显然从 x 出发,每走一步在模 g 意义下深度一定 +1,回到 x 时肯定长度为 g 的倍数。
  • 若存在 depu+1depv(modg),则一定存在长度不是 g 的倍数的环。根据裴蜀定理,g 可以变为 gcd(g,l)l 为这个环的长度),可以变得更小。

    为什么一定存在这种环:设 rt 为生成树的树根,若 xrt 存在长度 deprtdepx(modg) 的路径,则 xrtx 就符合要求;对 u,v 均同理。于是可以构造 xrtuvrtx 这样的环,除了 uv 的一段其它都符合 st 所有路径长度模 g 意义下等于 deptdeps 这一性质,所以这个环长度一定不是 g 的倍数。

根据证明过程,可以扩展这个定理:

x,ySCC,L,s.t.lL\andldepydepx(modg),存在以 x 为起点、以 y 为终点、长为 l 的路径。

证明过程类似。

posted @   Zesty_Fox  阅读(104)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2020-06-19 较详细的 gdb 入门教程
点击右上角即可分享
微信分享提示