进食后人:如果你的标记BFS 65pts
查看原帖
进食后人:如果你的标记BFS 65pts
1391976
mengnn楼主2025/6/23 21:15

在你广搜 vis[] 标记逻辑错误的情况下,这种样例可能会WA(不一定是链式结构):

void bfs(){
    while (!q.empty()){
        int x=q.front();
//      vis[x]=true;  错误写法
        q.pop();
        for (auto y:edge[x])
            if (!vis[y]){
                near[y]=near[x]+1;
                q.push(y);
//              vis[y]=true; 正确写法
            }
    }return ;
}

并且必须要保证的是在你输入 q.push(x);进队的时候(这里 xx 指传送门编号),需要写 vis[x]=true;

2025/6/23 21:15
加载中...