UVA 11624


UVA---11624--截屏--


UVA 11624_第1张图片


思路:每步先让火走--然后人走其他的路--就可以保证人不会被火烧了--

超时原因:在分为两个队列时--有一个走过的路忘覆盖了-----要细心呀--0.0---


两队列如下代码:

#include
#include
#include
#include
using namespace std;
char ma[1010][1010];
int n,m,rx,ry,fx,fy;
int xx[4]={0,0,1,-1};
int yy[4]={1,-1,0,0};
struct node{
	int x,y,step;
}now,qian,ff;
void bfs()
{
/*4 4
####
#JF#
#..#
#..#*/
	queue  R;
	queue  F;
	now.x=rx;now.y=ry;now.step=0;
	R.push(now);int lu=0;
	for (int i=0;ilu)
		lu++; 
		if (now.step==lu)
		{
			while (!F.empty())
			{
				ff=F.front();
				if (ff.step>lu)
				break;
				F.pop();
				for (int i=0;i<4;i++)
				{
					int kx=ff.x+xx[i];
					int ky=ff.y+yy[i];
					if (kx>=0&&kx=0&&ky


一队列代码:

#include
#include
#include
#include
using namespace std;
char ma[1010][1010];
int n,m,rx,ry,fx,fy;
int xx[4]={0,0,1,-1};
int yy[4]={1,-1,0,0};
struct node{
	int x,y,step;
	bool fafe;
}now,qian,ff;
int  bfs()
{
	queue  que;
	for (int i=0;i





你可能感兴趣的:(dfs&&bfs,我的ACM成长历程---啦啦啦)