#wXTTJlydlt60x6601. B城 BLO

B城 BLO

好的,这是整理好的题面,不含解题思路,只包含样例解释。


题目描述

B 城有 nn 个城镇,mm双向道路
每条道路连接两个不同的城镇,没有重复道路,且所有城镇连通。
城镇看作节点,道路看作边,整个城市构成一个连通无向图。

现在对于每个节点 ii,问:
把与节点 ii 关联的所有边去掉以后(不去掉节点 ii 本身),无向图中有多少个有序点对 (x,y)(x,y),满足 xxyy 不连通

输出 nn 行,第 ii 行输出对节点 ii 的答案。


输入格式

第一行两个整数 n,mn, m
接下来 mm 行,每行两个整数 a,ba, b,表示城镇 aabb 之间存在一条道路。

输出格式

输出 nn 行,每行一个整数,第 ii 行表示节点 ii 对应的答案。

数据范围

  • n100000n \le 100000
  • m500000m \le 500000

输入样例

5 5
1 2
2 3
1 3
3 4
4 5

输出样例

8
8
16
14
8

样例解释

n=5n=5m=5m=5,边: 1-2
2-3
1-3
3-4
4-5

原图(连通)结构:

1---2
 \ /
  3
  |
  4
  |
  5

(1 和 2 都与 3 相连,形成三角形,3 再连 4,4 连 5)


对每个节点删去它的所有边后,计算不连通的有序点对 (x,y)(x,y) 数量

注意:xxyy 可以相同吗? 通常“不连通”指不同节点之间,且 xyx \neq y,但有序对 (x,y)(x,y)xx 可以等于 yy 吗?
如果 x=yx=y,它们显然连通(同一个点),所以 xyx \neq y
有序对 (x,y)(x,y)(y,x)(y,x) 算两个,除非 x=yx=y,但 xyx \neq y 所以不考虑。


手动计算(简略过程,实际要用割点与子树大小分析):

节点 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