建议加强数据
查看原帖
建议加强数据
795344
lfxxx_楼主2024/1/13 16:57

我没有取模也可以过此题

#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';
    }
}
2024/1/13 16:57
加载中...