10分求调

P2078 朋友

把find(i)==m-1改成find(i)=find(m-1) 同理find(i)==m+1,find(i)=find(m+1) ```c #include <iostream> using namespace std; int f[200001]; int find(int x) { if (f[x] != x)f[x] = find(f[x]); return f[x]; } void mgs(int x, int y) { int a = find(x), b = find(y); if (a != b) f[b] = a; } int main() { int n, m, p, q; cin >> n >> m >> p >> q;;; for (int i = 0; i <= n + m; i++) { f[i] = i; } for (int i = 1; i <= p; i++) { int a, b; cin >> a >> b; mgs(a + m, b + m); } for (int i = 1; i <= q; i++) { int a, b; cin >> a >> b; mgs(m + a, m + b); } int c = 0, d = 0; for (int i = 0; i <= n + m; i++) { if (find(i) == find(m + 1))c++; if (find(i) == find(m - 1)) { d++; } } cout << min(c, d); } ```
by doublebreathing @ 2023-07-02 21:52:46


|