求大佬指导!
查看原帖
求大佬指导!
984679
illidan_楼主2023/7/28 10:20
#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

2023/7/28 10:20
加载中...