Python求调
  • 板块P2078 朋友
  • 楼主SwordRain
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/23 17:50
  • 上次更新2024/1/23 20:01:59
查看原帖
Python求调
1077867
SwordRain楼主2024/1/23 17:50
import sys
input = lambda:sys.stdin.readline().strip()
def find(x, s):
    if x != s[x]:
        s[x] = find(s[x], s)
    return s[x]
def merge(x, y, s):
    x = find(x, s)
    y = find(y, s)
    if x != y:
        s[x] = s[y]
def solve():
    n, m, p, q = map(int, input().split())
    boy = [i for i in range(n + 1)]
    girl = [i for i in range(m + 1)]
    for _ in range(p):
        x, y = map(int, input().split())
        merge(x, y, boy)
    for _ in range(q):
        x, y = map(int, input().split())
        merge(-x, -y, girl)
    for i in girl:
        find(i, girl)
    for j in boy:
        find(j, boy)
    num_boy = 1
    for i in range(2, n + 1):
        if boy[i] == boy[1]:
            num_boy += 1
    num_girl = 1
    for i in range(2, m + 1):
        if girl[i] == girl[1]:
            num_girl += 1
    print(min(num_girl, num_boy))
solve()
2024/1/23 17:50
加载中...