震惊!!这令地球人大为不解大为不解!!!
查看原帖
震惊!!这令地球人大为不解大为不解!!!
676490
xi_11楼主2022/9/12 08:49

我不是标题党,我只是想让dalao来指点下我,我能有什么怀心思qwq

#include<bits/stdc++.h>
using namespace std;
vector <int> q[100010];
int n,r,m;
int v[100010];
int fa[100010];
long long sum[100010],ans;
int dfs(int x,int a){
	sum[x]=1;
	fa[x]=a;
for(int i=0;i<=q[x].size()-1;i++){
	if(q[x][i]==a) continue;
        sum[x]+=dfs(q[x][i],x);	
       }
	return sum[x];
}
int su(int x){
	if(v[x]) return v[x];
	int anss=0;
for(int i=1;i<=q[x].size()-1;i++)
	  for(int j=0;j<i;j++){
   if(q[x][i]==fa[x]||q[x][j]==fa[x]) 
              continue;
anss+=sum[q[x][i]]*sum[q[x][j]];
	   }
	      v[x]=anss;
	      return anss;
}
int main(){
	scanf("%d%d%d",&n,&r,&m);
	for(int i=1;i<n;i++){
		int a,b;
		scanf("%d%d",&a,&b);
		q[a].push_back(b);
		q[b].push_back(a);
	}
	dfs(r,0);
	int a;
	for(int i=1;i<=m;i++){
		ans=0;
		scanf("%d",&a);
     ans=(1+(sum[a]-1)*2)%(1000000007);
     ans=(ans+su(a)*2)%(1000000007);
		cout<<ans<<endl;
	}
}

这东西提交上去为啥会RE第一个点

2022/9/12 08:49
加载中...