2022 SSSP

SSSP:Solution Set - Shortest Paths,词源 Rainybunny .

SSSP 又同 Single Source Shortest Paths,真是纯正无意义谜语人标题了 .

最短路都不会了,补一份档 .


\[\mathfrak{Defining~\LaTeX~macros\dots}\newcommand{\dist}[0]{\operatorname{dist}} \]

以下 \(\dist\) 是最短路长度,\(n,m\) 是点数和边数,一般认为同阶 .

最远点对

一棵树,\(q\) 组询问,每次给两个区间 \([a,b],[c,d]\),求 \(\max\{\dist(i,j)\mid a\le i\le b\land c\le j\le d\}\) .

\(1\le n,q\le 10^5\) .

线段树维护,维护子树内最远两点,合并信息时 \(6\) 种情况分类讨论即可 .

查询的时候也考虑用这个维护方式,\(4\) 个点分类讨论即可 .

具体证明就反证法瞎整就证完了 .

时间复杂度 \(\Theta((n+q)\log n)\) .

那一天她离我而去

给一张无向图,求 \(1\) 所在的最小环长度,不能为空 .

\(T\le 10\)\(n\le 10^4\)\(m\le 4\times 10^4\) .

标算:对于每一位只保留与 \(1\) 邻接且当前位为 \(1\) 的边然后跑暴力,就是对每个断了的边 \((1,u)\)\(\dist(u,1)\) 然后更新答案 .

显而易见这个是能枚举到所有的环的,于是就 \(\Theta(m\log^2m)\) 了,可以过了 .

然而这题喜闻乐见地被 joke3579,crs_line 众人爆标了,因为问题是下一题「最小距离」的特例 .

最小距离

给一张无向图,给 \(k\) 个关键点,求每个关键点到最近另一关键点的最短距离 .

\(1\le n,m\le 10^6\) .

开局把所有点全 push 进优先队列然后跑 Dijkstra,就求出来任意一个关键点到某点的最短距离,顺便记一下是哪个关键点的贡献 .

然后枚举一条边,若这条边的两个端点的最短路来自两个不同关键点,更新这两个关键点的答案即可 .

时间复杂度 \(\Theta(m\log m)\) .

重:GXOI/GZOI2019 旅行者

CF1343E:听说很强 .

posted @ 2023-02-23 20:54  Jijidawang  阅读(27)  评论(0编辑  收藏  举报
😅​