求调

题目总版

__KevinMZ__ @ 2024-10-25 14:33:56

WA

#include<bits/stdc++.h>
using namespace std;
#define int long long
int f[2010],n,m;
int find(int x){
    return f[x]==x?x:f[x]=find(f[x]);
}
void connect(int a,int b){
    f[find(b)]=find(a);
}
signed main(){
    cin>>n>>m;
    for(int i=1;i<=n<<1;i++){
        f[i]=i;
    }
    for(int i=1;i<=m;i++){
        char op;
        int p,q;
        cin>>op>>p>>q;
        if(op=='F'){
            connect(p,q);
            connect(p+n,q+n);
        }else{
            connect(p,q+n);
            connect(q,p+n);
        }
    }
    int cnt=0;
    for(int i=1;i<=n;i++){
        cnt+=find(i)==i;
    }
    cout<<cnt;
    return 0;
}

求调


|