test12错误求调
查看原帖
test12错误求调
1050788
DYH_bubble楼主2024/7/9 15:30

不知道为什么错了

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n,u,o,c,a[200001];
bool d[200001];
vector<int> v[200001];
bool bfs(int s){
	int l=2;
	queue<int> q;
	q.push(s);
	d[s]=1;
	while(!q.empty()){
		int t=q.front();
		q.pop();
		//cout<<t<<':'<<v[t].size()<<"=>"<<l<<'~'<<l+v[t].size()-1<<endl;
		for(int j=l;j<l+v[t].size();j++){
			if(d[a[j]]) continue;
			bool fou=0;
			int p;
			for(int i=0;i<v[t].size();i++){
				if(a[j]==v[t][i]) fou=1,p=j;
			}
			if(!fou) return 0;
			q.push(a[j]),d[a[j]]=1;
		}
		l+=v[t].size();
	}
	return 1;
}
int main(){
	cin>>n;
	for(int i=1;i<=n-1;i++){
		cin>>u>>o;
		v[u].push_back(o);
	}
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	if(bfs(a[1])) cout<<"Yes";
	else cout<<"No";
 	return 0;
}

2024/7/9 15:30
加载中...