关于BFS和dijkstra(2019.04.20)

我的BFS板子

struct node{/*略*/};//表示一个状态
std::map<node,bool>vis;//判断每个状态是否已访问过
std::queue<node>q;//BFS扩展队列
//BFS主代码
q.push(start_node);
vis[start_node]=1;
while(!q.empty()){
    node head=q.front();
    q.pop();
    for(int i:directions){
        node new=move(head,i);
        if(!valid(new)||vis[new])continue;
        //做题
        q.push(new);
        vis[new]=1;
    }
}

猜你喜欢

转载自www.cnblogs.com/water-lift/p/10742601.html