这是一个简单的dfs
偶数=偶数+偶数或者奇数+奇数 所有我们只用统计深度为奇数或者偶数的个数
答案为 奇数或者偶数任取两个 即(ans1(ans1-1)/2)+(ans2(ans2-1)/2)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e5+10;
int head[N],nex[N<<1],to[N<<1],tot;
int n,h[N];
ll ans1,ans2;
void add(int a,int b){
    to[++tot]=b; nex[tot]=head[a]; head[a]=tot;
}

void dfs(int x,int fa){
    h[x]=h[fa]+1;
    if(h[x]&1) ans1++;
    else ans2++;
    for(int i=head[x];i;i=nex[i]){
        if(to[i]!=fa) dfs(to[i],x);
    }
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<n;i++){
        int x,y;    scanf("%d %d",&x,&y);    add(x,y);    add(y,x);
    }
    dfs(1,0);
    cout<<(ans1*(ans1-1)/2)+(ans2*(ans2-1)/2)<<endl;
    return 0;
}