思路:一开始想着去慢慢查找,肯定是超时超空间的,后面发现其实我们只要第二图相对于第一个图哪些变是有的那些边是没有的,这些边的树木便是最少次数,可证明。
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n;
map<int,map<int,bool> > vis;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
int u,v;
for(int i=1;i<n;i++){
cin>>u>>v;
vis[u][v]=1;
vis[v][u]=1;
}
int a=0,b=0;
for(int i=1;i<n;i++){
cin>>u>>v;
if(vis.find(u)!=vis.end()&&vis[u].find(v)!=vis[u].end())a++;//有的
else b++;//多的
}
cout<<b<<endl;
//int sum=(n-1-a+b);
//if(sum&1) cout<<"-1"<<endl;
//else cout<<sum/2<<endl;
}