7 条题解
-
-4
python版本的深搜!
sys.setrecursionlimit(3000) def dfs(x,y,q): if q==n*n+1: return 0 a[x][y]=q q=q+1 if x==1 and y!=n: dfs(n,y+1,q) if x!=1 and y==n: dfs(x-1,1,q) if x==1 and y==n: dfs(x+1,y,q) if x!=1 and y!=n: if a[x-1][y+1]==0: dfs(x-1,y+1,q) else: dfs(x+1,y,q) return 0 n=int(input()) a=[[0 for i in range(n+2)] for j in range(n+2)] q=1 p=(n+1)//2 dfs(1,p,q) for i in range(1,n+1): for j in range(1,n+1): print(a[i][j],end=' ') print()
信息
- ID
- 156
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- 递交数
- 138
- 已通过
- 68
- 上传者