/*树形dp换根法*/ #include<bits/stdc++.h> using namespace std; #define maxn 200005 ]; int root,n,s,t,head[maxn],tot,dp[maxn]; void init(){ memset(head,-,sizeof head); tot=; } void addedge(int u,int v,int flag){ edge[tot].to=v;edge[tot].nxt=head[u];edge[to…