DFS/BFS视频讲解
DFS和BFS其实都是一棵搜索树,大多数题目不会直接给你一棵树,需要你自己转化
DFS
BFS
模板:
void bfs(int x,int y) { node temp; temp.x=x; temp.y=y; temp.step=0; queue<node>p; p.push(temp); vis[x][y]=1; while(!p.empty()) { node now=p.front(); p.pop(); for(int i=0;i<4;i++) { int tx=now.x+dir[i][0]; int ty=now.y+dir[i][1]; if(合法条件) { if(目标状态) { cout<<结果<<endl; return ; } //更新状态 /*vis[tx][ty]=1; node temp;------------注意不能直接用now更新,这里要新建一个结构体去更新,否则会错 temp.x=tx; temp.y=ty; temp.step=now.step+1;*/ p.push(temp); } } } }
等风起的那一天,我已准备好一切