40pts MLE求助
  • 板块P1605 迷宫
  • 楼主Deltary_
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/2 11:33
  • 上次更新2023/11/3 11:54:31
查看原帖
40pts MLE求助
831011
Deltary_楼主2023/7/2 11:33
#include<cstdio>
#include<iostream>
using namespace std;
const int ffx[10]={0,1,0,-1,0};
const int ffy[10]={0,0,1,0,-1};
bool maze[25][25]={0},went[25][25]={0};
int n,m,t,ans=0;
int sx,sy,fx,fy;
void dfs(int x,int y,int ts){
	int x1,y1;
	if(x==fx&&y==fy){
		ans++;
		return;
	}
	for(int i=1;i<=4;i++){
		x1=x+ffx[i],y1=y+ffy[i];
		if(maze[x1][y1]==0&&went[x1][y1]==0&&
		x1>0&&y1>0&&x1<=n&&y1<=m){
			went[x1][y1]=1;
			dfs(x1,y1,ts+1);
		}
		went[x1][y1]=0;
	}
	return;
}
int main(){
	scanf("%d%d%d",&n,&m,&t);
	scanf("%d%d%d%d",&sx,&sy,&fx,&fy);
	for(int i=0;i<t;i++){
		int lx,ly;
		scanf("%d%d",&lx,&ly);
		maze[lx][ly]=1;
	}
	maze[sx][sy]=1;
	dfs(sx,sy,2);
	cout<<ans<<endl;
	return 0;
}

rt,求大佬

2023/7/2 11:33
加载中...