点双联通分量:
对一张图,若其不含割点,则其为一个点双。
1,对于点双中的两个点(除只有两点一边的特殊图),可以视作其必然存在两条不同的简单路径,使两者经过的并集为空。
2,对于点双中任意一对点,经过它们的简单路径的并集一定为点双本身,意即可以认为两点间简单路径可以通过点双内任意一点。
圆方树:
圆方树:对于一张无向图,将其点双求出,而后将点双视作方点,将原图点视作圆点,将一点双内所含的点代表圆点与该方点相连,一来就会形成一颗树(原图联通)。
那么就会有良好的性质,如可以直接发现的是,两点间路径可以经过的点可以用圆方树上所有方点包含,也就是若有与点相关信息可以使用方点记录,而后利用树来快速求出路径经过问题。
P4630 [APIO2018] 铁人两项
题
题目描述
比特镇的路网由 \(m\) 条双向道路连接的 \(n\) 个交叉路口组成。
最近,比特镇获得了一场铁人两项锦标赛的主办权。这场比赛共有两段赛程:选手先完成一段长跑赛程,然后骑自行车完成第二段赛程。
比赛的路线要按照如下方法规划:
- 先选择三个两两互不相同的路口 \(s\)、\(c\) 和 \(f\),分别作为比赛的起点、切换点(运动员在长跑到达这个点后,骑自行车前往终点)、终点。
- 选择一条从 \(s\) 出发,经过 \(c\) 最终到达 \(f\) 的路径。考虑到安全因素,选择的路径经过同一个点至多一次。
在规划路径之前,镇长想请你帮忙计算,总共有多少种不同的选取 \(s\)、\(c\) 和 \(f\) 的方案,使得在第 \(2\) 步中至少能设计出一条满足要求的路径。
输入格式
第一行包含两个整数 \(n\) 和 \(m\),分别表示交叉路口和双向道路的数量。
接下来 \(m\) 行,每行两个整数 \(v_i, u_i\)。表示存在一条双向道路连接交叉路口 \(v_i, u_i\)(\(1 \le v_i, u_i \le n\),\(v_i \neq u_i\))。
保证任意两个交叉路口之间,至多被一条双向道路直接连接。
输出格式
输出一行,包括一个整数,表示能满足要求的不同的选取 \(s\)、\(c\) 和 \(f\) 的方案数。
- Subtask 9(points: \(10\)):\(n \leq 100000\),\(m \leq 200000\)。