来自蒟蒻的疑惑
  • 板块灌水区
  • 楼主StrFaith
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/10/5 20:46
  • 上次更新2024/10/5 21:54:09
查看原帖
来自蒟蒻的疑惑
970752
StrFaith楼主2024/10/5 20:46

P1892
为什么这样的代码会WA

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e4+1;
int n, m;
char opt;
int fa[maxn<<1];
int get(int a) {
    if(fa[a] != a) fa[a] = get(fa[a]);
    return fa[a];
}
void link(int a, int b) {
    fa[get(a)] = get(b);
}
void init() {
    for(int i = 1;i<= (maxn << 1);i++) {
        fa[i] = i;
    }
}
int main() {
    init();
    scanf("%d%d", &n, &m);
    while(m--) {
        scanf("%s", &opt);
        int a, b;
        scanf("%d%d", &a, &b);
        if(opt == "F") {
            link(a, b);
        }
        else if(opt == "E") {
            link(a+n, b);
            link(b+n, a);
        }
    }
    int ans = 0;
    for(int i =1;i<=n;i++) {
        if(i == fa[i])ans++;
    }
    printf("%d\n", ans);
    return 0;
}

而把“F”改成单引号就AC???

2024/10/5 20:46
加载中...