提交时间:2024-01-07 16:24:47
运行 ID: 230138
#include <bits/stdc++.h> using namespace std; int fa[100002]; bool vis[100002]; int n,ans; int a[100002]; int find(int x) { if(fa[x]!=x) { fa[x]=find(fa[x]); } return fa[x]; } int main() { scanf("%d",&n); for(int i=1; i<=n; i++) { fa[i]=i; vis[i]=false; } for(int i=1; i<=n; i++) { scanf("%d",&a[i]); } for(int i=1; i<n; i++) { int a,b; scanf("%d%d",&a,&b); a=find(a); b=find(b); if(a!=b) { fa[a]=b; } } for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(i!=j&&fa[i]==fa[j]) { if(vis[i]!=true&&vis[j]!=true) { ans+=2; vis[i]=true; vis[j]=true; } } } } printf("%d\n",ans); return 0; }