我没有取模也可以过此题
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5,mod=1e9+7;
int n,m,s;
vector<int>edge[N];
int ans[N],siz[N],sum[N];
void getsz(int u,int fa)
{
siz[u]=1;
for(auto v:edge[u])
{
if(fa==v)
continue;
getsz(v,u);
siz[u]+=siz[v];
sum[u]+=siz[v]*siz[v];
}
ans[u]=siz[u]*siz[u]-sum[u];
}
signed main()
{
cin>>n>>s>>m;
for(int i=1;i<n;++i)
{
int u,v;
cin>>u>>v;
edge[u].push_back(v);
edge[v].push_back(u);
}
getsz(s,0);
while(m--)
{
int u;
cin>>u;
cout<<ans[u]<<'\n';
}
}