在你广搜 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);
进队的时候(这里 x 指传送门编号),需要写 vis[x]=true;
。