#建图
n,m,t=map(int,input().split())
sx,sy,fx,fy=map(int,input().split())
mg=[[0]*m for i in range(n)]
vis=[[0]*m for i in range(n)]
for i in range(t):
x,y=map(int,input().split())
mg[x-1][y-1]=1
#print(mg)
def dfs(x,y):
global cnt #定义全局变量
if x==fx-1 and y==fy-1:
cnt+=1
return #符合条件,进行计数
for dx,dy in [(1,0),(-1,0),(0,1),(0,-1)]:
nx=dx+x
ny=dy+y
if 0<=nx<n and 0<=ny<m and vis[nx][ny]!=1 and mg[nx][ny]!=1:
vis[x][y]=1#注意标记的是x不是nx
dfs(nx,ny)
vis[x][y]=0
return #循环结束说明此路不同,或者nx,ny之后的所有路都以走完
cnt=0#dfs函数之前赋值
dfs(sx-1,sy-1)
print(cnt)
【DFS题型二/所有路径/全局变量】迷宫
于 2022-10-05 16:25:52 首次发布