炒鸡简单的广搜题。
好像是SD的一道省选题(对没错好像是省选),叫“位图”吧。
从图是1的地方开始搜,如果dis不是初始值的话已经被其他点搜到了。
BFS保证的是最短搜索路径。
上代码:
好像是SD的一道省选题(对没错好像是省选),叫“位图”吧。
从图是1的地方开始搜,如果dis不是初始值的话已经被其他点搜到了。
BFS保证的是最短搜索路径。
上代码:
#include<iostream>
using namespace std;
int n,m;
struct node
{
int x;
int y;
char color;
int dis;
} phonex[183][183];
node que[33125];
int head=1,tail=1;
void push(node a)//给队列加入一个元素
{
que[tail]=a;
tail++;
return;
}
node pop()//弹出队列第一个元素
{
head++;
return que[head-1];
}
bool empty()
{
if(head==tail)
return true;
return false;
}
void bfs()
{
node first;
while(!empty())
{
first=pop();
if(first.x!=1 && phonex[first.x-1][first.y].color=='0' &&
phonex[first.x-1][first.y].dis==0)
{
phonex[first.x-1][first.y].dis=first.dis+1;
push(phonex[first.x-1][first.y]);
}
if(first.x!=n && phonex[first.x+1][first.y].c