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

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

void bfs(){
    while (!q.empty()){
        int x=q.front();
//      vis[x]=true;  错误写法
        q.pop();
        for (auto y:edge[x])
            if (!vis[y]){
                div[y]=div[x]+1;
//              这里 div 数组表示某节点与距离它最近传送门的最短距离长度
                q.push(y);
//              vis[y]=true; 正确写法
            }
    }return ;
}

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

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