杭电2612

请注意一次把所有可到达的点所花最短时间算一遍,比每找到@再寻找快!!!

一次一次找就会超时!!!

#include 
#include 
#include 
#include 
using namespace std;
char mapp[210][210];
#define inf 100000000
int n,m;
int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}};
int pos1x,pos1y,pos2x,pos2y,posdx,posdy;
int visit[210][210];
int dist1[210][210],dist2[210][210];
struct stu
{
	int x,y,step;
};
int BFS(stu stu1,int dist[][210])
{
	int i;
	queuek;
	stu stu2;
	memset(visit,0,sizeof(visit));  
    memset(dist,0,sizeof(dist)); 
	k.push(stu1);
	while(!k.empty())
	{
		stu1=k.front();
		k.pop();
		for(i=0;i<4;i++)
		{
			stu2.x=stu1.x+dir[i][0];
			stu2.y=stu1.y+dir[i][1];
			stu2.step=stu1.step+11;
			if(stu2.x>=0&&stu2.x=0&&stu2.y>mapp[i];
		}
		for(i=0;i



你可能感兴趣的:(广搜)