不知道错哪了啊
查看原帖
不知道错哪了啊
412151
zjj8008120308楼主2021/4/8 01:13
#include <stdio.h>
int a[6][6],book[6][6];
int sum=0;
int N,M,T;
int SX,SY,FX,FY;
void dfs(int x,int y)
  {
  	int next[4][2]={{0,1},//
	                {1,0},//
	                {0,-1},//
	                {-1,0},//
					};
	int tx,ty,k;
	//
	if(x==FX&&y==FY)
	  {
	  	sum+=1;
	  	return;
	  }
	//
	for(k=0;k<=3;k++)
	  {
	  	//计算下一个点的坐标 
	  	tx=x+next[k][0];
	  	ty=y+next[k][1];
	  	//判断是否越界
		if(tx<1||tx>N||ty<1||ty>M) 
		  continue;
		//判断点是否为障碍物或已在路径中
		if(a[tx][ty]==0&&book[tx][ty]==0)
		  {
		  	book[tx][ty]==1;
		  	dfs(tx,ty);
		  	book[tx][ty]==0;
		   } 
	  }
	return ;
  }
int main()
  {
  	scanf("%d %d %d",&N,&M,&T);
  	scanf("%d %d %d %d",&SX,&SY,&FX,&FY);
  	int i,X, Y;
    for(i = 0; i < T; ++i)
	  {
        scanf("%d %d",&X,&Y);
        a[X][Y]=1;//标记障碍的位置
		}
  	a[SX][SY]==1;
  	dfs(SX,SY);
  	printf("%d",&sum);
  	
  	return 0;
  }
2021/4/8 01:13
加载中...