求助
查看原帖
求助
257635
XAKXIANGAKIOI楼主2020/7/11 19:12
cpp
#include <bits/stdc++.h>
using namespace std;
int m, n, t, ans;
int sx, sy, fx, fy;
int p[90][90], vis[99][99], d[5] = {-1,0,1,0,-1};
void dfs(int a, int b){
	if(a == fx && b == fy){
		ans++;
		return;
	}
	for(int i=0;i<5;i++){
		int nx = a + d[i], ny = b + d[i+1];
		if(vis[nx][ny] == 0 && p[nx][ny] == 1){	
			vis[a][b] = 1;
			dfs(nx,ny);
			vis[a][b] = 0;
		}
	}
	
}
int main(){
	scanf("%d %d %d", &m, &n, &t);
	scanf("%d %d %d %d", &sx, &sy, &fx, &fy);
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++) p[i][j] = 1;
	for(int i=1;i<=t;i++){
		int a, b;
		scanf("%d %d", &a, &b);
		p[a][b] = 0;
	}
	dfs(sx,sy);
	printf("%d", ans);
	return 0;
}
2020/7/11 19:12
加载中...