首页 > 代码库 > 111

111

#include <stdio.h>
int map[10][10];
int num[10][10];
int num1[10][10];
int N,min=99;
int x,y,x1,y1,x2,y2,x3,y3;
int ax[4]={0,1,0,-1};
int ay[4]={1,0,-1,0};

void dfs(int zx , int zy ,int zx1 , int zy1 ,int step)
{
	if(step==5)
	{
		return ;
	}
	for(int i=0;i<4;i++)
	{
		int tx,tx1,ty,ty1;
		tx=zx+ax[i];
		ty=zy+ay[i];
		tx1=zx1+ax[i];
		ty1=zy1+ay[i];
		if((tx>=0&&tx<N&&ty>=0&&ty<N)||(tx1>=0&&tx1<N&&ty1>=0&&ty1<N))
		{
			if((!map[tx][ty]&&(!num[tx][ty]))||(!map[tx1][ty1]&&(!num1[tx1][ty1])))
			{
				while((!map[tx][ty]&&(!num[tx][ty]))||(!map[tx1][ty1]&&(!num[tx][ty])))
				{
					if(!map[tx][ty]||!map[tx1][ty1])
					{

					}
				}
			}

			dfs(tx,ty,tx1,ty1,step+1);
		}
		
	}


}
int main()
{
	freopen("in.txt","r",stdin);
	scanf("%d",&N);
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
		{
			scanf("%d",&map[i][j]);
			if(map[i][j]==2)
			{
				x=i;
				y=j;
				map[i][j]=0;
			}
			if(map[i][j]==3)
			{
				x1=i;
				y1=j;
				map[i][j]=0;
			}

			if(map[i][j]==4)
			{
				map[i][j]=0;
			}

			if(map[i][j]==6)
			{
				map[i][j]=0;
			}
		}
	}
	num[x][y]=1;
	num1[x1][y1]=1;
	
	dfs(x,y,x1,y1,0);
	printf("%d",min);
}

 

111