求调必关
  • 板块P1605 迷宫
  • 楼主liujunyua
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/10/19 09:43
  • 上次更新2024/10/19 11:44:48
查看原帖
求调必关
1357615
liujunyua楼主2024/10/19 09:43
#include<iostream>
#include<cstdio>
using namespace std;
const int d[][2]={{0,0},{-1,0},{0,1},{1,0},{0,-1}};
int total;
int n,m,t;
int sx,sy,fx,fy;
const int N=10;
int a[N][N];
int vis[N][N];

void dfs(int x,int y){
	if(x==fx&&y==fy){
		total++;
		return ;
	}
	for(int i=1;i<=4;i++){
		int xx=x+d[i][0];
		int yy=y+d[i][1];
		if(xx<0||yy<0||xx>n||yy>m)
		  continue;
		if(!vis[xx][xx]&&!a[xx][yy]){
			a[xx][yy]=1;
			vis[xx][yy]=1;
			dfs(x,y);
			a[xx][yy]=0;
			vis[xx][yy]=0;
		}
	}
}

int main(){
	scanf("%d%d%d",&n,&m,&t);
	scanf("%d%d%d%d",&sx,&sy,&fx,&fy);
	for(int i=1;i<=t;i++){
		int tx,ty;
		scanf("%d%d",&tx,&ty);
		a[tx][ty]=1;
	}
	dfs(sx,sy);
	printf("%d",total);
	return 0;
}

总是输出0,求大佬们调试

2024/10/19 09:43
加载中...