bfs模板
点击查看代码
queue<node> q;
void bfs(){
while(!q.empty()){
node tmp=q.top();//node为(x,y)结构体
q.pop();//出队
if(到达目标终点){
更新
return;
}
//有的会有剪枝
for(int i=0;i<m;i++){//m个方向
int dx=tmp.x+bx[i];
int dy=tmp.y+by[i];
if(下标越界){
continue;
}
if(已经被标记过了){
continue;
}
//否则就是合法的
vis[dx][dy]=1;//先标记
q.push(node{dx,dy});//再新点入队
}
}
}

浙公网安备 33010602011771号