不知道哪错了,求助,只能拿20分
查看原帖
不知道哪错了,求助,只能拿20分
140036
lym15153803521楼主2021/4/17 15:14
#include <bits/stdc++.h>
using namespace std;
int n,m,t,sx,sy,fx,fy;
int bar[100][100]={0},vis[100][100]={0};
int ud[]={0,-1,0,1};
int lr[]={-1,0,0,1};
int ans;
void dfs(int x,int y){
	if(x==fx&&y==fy){
		ans++;
		return;
	}else{ 
		for(int i=0;i<4;i++){
			int dx=x+lr[i],dy=y+ud[i];
			if((vis[dx][dy]!=1)&&(dx>=1&&dx<=n)&&(dy>=1&&dx<=m)&&(bar[dx][dy]!=1)){
				vis[dx][dy]=1;
				dfs(dx,dy);
				vis[dx][dy]=0;
			}
		}
	}
}
int main(){
	cin>>n>>m>>t>>sx>>sy>>fx>>fy;
	int x,y;
	for(int i=1;i<=t;i++){
		cin>>x>>y;
		bar[x][y]=1;
	}
	vis[sx][sy]=1;
	dfs(sx,sy);
	cout<<ans;
	return 0;
}
2021/4/17 15:14
加载中...