写了三道BFS的基础题,有一道是一维的板子,有一道是二维的板子,还有一个是FloodFill的BFS实现。
收获呢就是:
1.写好条件
2.打好标记
3.标记数组的灵活运用,访问与没访问过的同时还可以记录距离等,即利用distance[]=-1判断未访问过
板子:
int bfs(PII/TIII start){
memset(st,false,sizeof st);
queue<PII/TIII> q;
q.push(start);
st[start.x][start.y]=true;
while(q.size()){
auto t=q.front();
q.pop();
//循环所有能走的方向
//判断哪些情况不符合条件 continue;
//符合条件的放入队列,做好标记/做好答案修改
}
return res;
}