#include <bits/stdc++.h>
using namespace std;
int fa[300002],x[300002],y[300002],op[300002],ans[300002],w[300002];
int se(int i)
{
if(fa[i]==i) return i;
return fa[i]=se(fa[i]);
}
int main()
{
memset(w,0,sizeof(w));
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++) fa[i]=i;
for(int i=1;i<=m;i++)
{
cin>>x[i]>>y[i];
}
for(int i=1;i<=n;i++)
{
int now;
cin>>now;
op[i]=now;
w[i]=1;
}
for(int i=n;i>0;i--)
{
w[op[i]]=0;
for(int k=1;k<=m;k++)
{
if(w[x[k]]==0&&w[y[k]]==0)
{
if(se(x[k])!=se(y[k])) fa[x[k]]=y[k];
}
}
ans[i]=0;
for(int k=1;k<=n;k++)
{
if(se(k)==k&&w[k]==0) ans[i]++;
}
}
for(int i=1;i<=n-1;i++)
{
if(ans[i]==1) cout<<"YEs"<<endl;
else cout<<"NO"<<endl;
}
cout<<"YES";
return 0;
}
为什么全wa了啊,照着题解全改了遍依然是全wa