bfs为何过不了?
查看原帖
bfs为何过不了?
1740609
lqy202400091楼主2025/7/28 11:24

我的想法是反向建边+BFS+并查集。```cpp

#include<iostream>
#include<cstdio>
#include<deque>
int u,v,n,m,dian[int(1e5+1)];
std::deque<std::deque<int> > bian;
int main()
{
    scanf("%d %d",&n,&m);
    bian.resize(n+1);
    for(int i=0;i<m;++i)
    {
        scanf("%d %d",&u,&v);
        bian[v].push_back(u);
    }
    for(int i=1;i<=n;++i)
        dian[i]=i;
    for(int i=n;i>0;--i)
    {
        for(auto c:bian[i])
        {
            if(dian[c]<dian[i])
                dian[c]=dian[i];
        }
    }
    for(int i=1;i<=n;++i)
        printf("%d ",dian[i]);
}
哪位大佬能指点一下?愚倍受恩感激。
2025/7/28 11:24
加载中...