2 条题解
-
-2
using namespace std; int f[47843],e[43665],ans[54647]; int get(int x) { if(f[x]==x) return x; return f[x]=get(f[x]); } int main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n,k,x,y; char opt; cin>>n>>k; for(int i=1;i<=n;i++) f[i]=i; memset(e,0,sizeof(e)); for(int i=1;i<=k;i++) { cin>>opt>>x>>y; if(opt=='F') f[get(x)]=get(y); if(opt=='E') { if(e[x]==0) e[x]=get(y); else f[get(y)]=get(e[x]); if(e[y]==0) e[y]=get(x); else f[get(x)]=get(e[y]); } } int cnt=0; memset(ans,0,sizeof(ans)); for(int i=1;i<=n;i++) ans[get(i)]++; for(int i=1;i<=n;i++) if(ans[i]>0) cnt++; cout<<cnt; return 0; }
信息
- ID
- 457
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- 递交数
- 42
- 已通过
- 23
- 上传者