題目鏈接:Codeforces - 偶樹的切分
顯然貪心,能切就切。
AC代碼:
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e5+10;
int n,res;
vector<int> g[N];
inline void add(int a,int b){g[a].push_back(b),g[b].push_back(a);}
int dfs(int x,int fa){
int tmp=1;
for(int to:g[x]) if(to!=fa) tmp+=dfs(to,x);
if(tmp%2==0) return res++,0;
return 1;
}
signed main(){
cin>>n;
for(int i=1,a,b;i<n;i++) cin>>a>>b,add(a,b);
dfs(1,0);
cout<<res-1;
return 0;
}