DFS
先一遍DFS算出每个节点的 s i z e size size并统计根节点的答案。而对于一个子节点,当它作为根时,它子树到它的距离-1,其他点的距离+1。那么全算出来就好了。
代码:
#include<cctype>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 1000005
#define F inline
using namespace std;
typedef long long LL;
struct edge{
int nxt,to; }ed[N<<1];
int n,k,h[N],fa[N],sz[N],dep[N];
LL ans,s[N];
F char readc(