mle求助
  • 板块P1605 迷宫
  • 楼主huta0
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/4 17:35
  • 上次更新2023/11/4 20:11:41
查看原帖
mle求助
749665
huta0楼主2023/11/4 17:35

大佬们是不是lx,ly那八个int导致的qwp

#include<iostream>
#include<cstring>
using namespace std;

int n,m,t,ans,sx,sy,fx,fy;
int map[20][20];
int pr[20],pk[20];

bool overflow(int x,int y) {
	return (x<=0||x>m||y<=0||y>n);
}

void dfs(int x,int y) {
	if(x==fx&&y==fy) {
		ans++;
		return;
	}
	
	int lx=x+1,ly=y;//right
	int rx=x,ry=y+1;//down
	int px=x-1,py=y;//left
	int qx=x,qy=y-1;//up
	
	if(!overflow(lx,ly)) {
		if(!map[ly][lx]) {
		   dfs(lx,ly);
	    }
	}
	if(!overflow(rx,ry)) {
		if(!map[ry][rx]) {
		   dfs(rx,ry);
	    }
	}
	if(!overflow(px,py)) {
		if(!map[py][px]) {
		   dfs(px,py);
	    }
	}
	if(!overflow(qx,qy)) {
		if(!map[qy][qx]) {
		   dfs(qx,qy);
	    }
	}
	return;
}

int main() {
	cin>>n>>m>>t;
	memset(map,0,sizeof(map));
	cin>>sx>>sy>>fx>>fy;
	for(int i=1;i<=t;i++) {
		cin>>pr[i]>>pk[i];
		map[pk[i]][pr[i]]=1;
	}
	dfs(sx,sy);
	/*for(int i=1;i<=n;i++) {
		for(int j=1;j<=m;j++)
		   cout<<map[i][j]<<" ";
		cout<<endl;   
	}*/
	cout<<ans;
	
	return 0;
}
2023/11/4 17:35
加载中...