#wXTTJlydlt60x6601. B城 BLO
B城 BLO
好的,这是整理好的题面,不含解题思路,只包含样例解释。
题目描述
B 城有 个城镇, 条双向道路。
每条道路连接两个不同的城镇,没有重复道路,且所有城镇连通。
城镇看作节点,道路看作边,整个城市构成一个连通无向图。
现在对于每个节点 ,问:
把与节点 关联的所有边去掉以后(不去掉节点 本身),无向图中有多少个有序点对 ,满足 和 不连通?
输出 行,第 行输出对节点 的答案。
输入格式
第一行两个整数 。
接下来 行,每行两个整数 ,表示城镇 和 之间存在一条道路。
输出格式
输出 行,每行一个整数,第 行表示节点 对应的答案。
数据范围
输入样例
5 5
1 2
2 3
1 3
3 4
4 5
输出样例
8
8
16
14
8
样例解释
,,边:
1-2
2-3
1-3
3-4
4-5
原图(连通)结构:
1---2
\ /
3
|
4
|
5
(1 和 2 都与 3 相连,形成三角形,3 再连 4,4 连 5)
对每个节点删去它的所有边后,计算不连通的有序点对 数量
注意: 和 可以相同吗? 通常“不连通”指不同节点之间,且 ,但有序对 中 可以等于 吗?
如果 ,它们显然连通(同一个点),所以 。
有序对 和 算两个,除非 ,但 所以不考虑。
手动计算(简略过程,实际要用割点与子树大小分析):
节点 1:删去边 1-2 和 1-3 后,节点 1 孤立,其余部分仍是连通吗?
其余部分:2 和 3 还有边 2-3,3 与 4、4 与 5 连通,所以剩下部分 2,3,4,5 连通,节点 1 单独一个连通块。
连通块大小:块1 = {1} 大小 1,块2 = {2,3,4,5} 大小 4。
不连通有序对数量 = 1×4 + 4×1 = 8。
输出 8。
节点 2:与 1 类似,删去 2-1 和 2-3,剩下 1 和 3 是否连通? 1 和 3 没有直接边,但 1-3 在原图中有边吗? 有,原图有 1-3 边。删去 2 的边不影响 1-3,所以 1,3,4,5 仍连通,节点 2 单独一个块。
块大小:{2} 大小 1,{1,3,4,5} 大小 4。
不连通有序对 = 1×4 + 4×1 = 8。
输出 8。
节点 3:删去边 3-1, 3-2, 3-4。
原三角形 1-2-3 中,删去 3 的边后,1 和 2 是否连通? 1-2 有直接边,所以 {1,2} 连通; {4,5} 连通; 3 孤立。
连通块:{1,2} 大小 2,{3} 大小 1,{4,5} 大小 2。
不连通有序对总数 = 各个块之间点对总数(有序)。
总有序对 = 总点数 5,总共 5×4=20 对不同点有序对。
连通对只在同一块内:块 {1,2} 内有 2×1=2 对有序((1,2),(2,1)),块 {4,5} 内有 2 对,块 {3} 内无。连通有序对 = 4 对。
不连通有序对 = 20 - 4 = 16。
输出 16。
节点 4:删去边 4-3, 4-5。
原图中 4 是桥,删去后分成两部分:{1,2,3} 和 {5},以及节点 4 孤立。
连通块:{1,2,3} 大小 3,{4} 大小 1,{5} 大小 1。
连通有序对只在块内:块 {1,2,3} 内 3×2=6 对,其余块内 0 对。
总有序对不同点对 = 5×4=20,不连通有序对 = 20 - 6 = 14。
输出 14。
节点 5:删去边 5-4,剩下图 {1,2,3,4} 连通,{5} 孤立。
块大小:{1,2,3,4} 大小 4,{5} 大小 1。
不连通有序对 = 4×1 + 1×4 = 8。
输出 8。
最终输出:
8
8
16
14
8