求条(玄关)
  • 板块灌水区
  • 楼主wzt20130125
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/22 18:17
  • 上次更新2024/11/22 20:08:27
查看原帖
求条(玄关)
1423857
wzt20130125楼主2024/11/22 18:17

不出意外的话是0分(全WA)
这是题目

#include<bits/stdc++.h>
using namespace std; 
int k[100001],ma,p=1,s;
vector<int>a[100001];
bool v[100001];
void dfs(int x,int deep){
	if(ma<deep)ma=deep,p=x;
	for(int i=0;i<a[x].size();i++) {
	   if(v[a[x][i]]==0) { 
	     v[a[x][i]]=1; 
	     if(k[a[x][i]]==1)dfs(a[x][i],deep+1);
		 else dfs(a[x][i],deep);
	   }
	}
}
int main(){
	int t;
	cin>>t;
	while(t--){
		 int n;
		 cin>>n;
		 for(int i=1;i<=n;i++){ cin>>k[i]; if(k[i]==1)s++; }
		 for(int i=1;i<n;i++) {
	   		int x,y;
	   		cin>>x>>y;
	   		a[x].push_back(y);
	   		a[y].push_back(x);
		 }
		 v[1]=1;
		 dfs(1,1);
	 	 for(int i=1;i<=n;i++)v[i]=0;
		 int y=p;
		 v[y]=1;
		 dfs(y,1);
	 	 for(int i=1;i<=n;i++)a[i].clear();
	 	 for(int i=1;i<=n;i++)v[i]=0;
		 if(s==ma)cout<<"Yes\n";
		 else cout<<"No\n";
		 s=0,ma=0,p=1;
	}
	return 0;
}
2024/11/22 18:17
加载中...