日报
今天只有一道题.
题目
一、2316. 统计无向图中无法互相到达点对数
1. 题目描述
2. 思路分析
- 周赛时做过,当时用的并查集。
- 今天需求宽搜,学习一下。
3. 代码实现
class Solution:
def countPairs(self, n: int, edges: List[List[int]]) -> int:
g = [[] for _ in range(n)]
for u,v in edges:
g[u].append(v)
g[v].append(u)
visited = [0] * n
def bfs(u):
q = deque([u])
visited[u] = 1
s = 0
while q :
u = q.popleft()
s += 1
for v in g[u]:
if visited[v] == 0:
q.append(v)
visited[v] = 1
return s
ans = 0
for i in range(n):
if visited[i] == 0:
s = bfs(i)
# print(i,s)
ans += s*(n-s)
return ans//2