d=[(-1,-2),(1,-2),(-2,-1),(2,-1),(-2,1),(2,1),(-1,2),(1,2)] def dfs(x,y,s): global res if s==n*m: res+=1 return for a,b in d: if x+a<0 or x+a>=n or y+b<0 or y+b>=m or vis[x+a][y+b]==1: continue # if 0<=x+a<n and 0<=y+b<m and vis[x+a][y+b]==0: vis[x+a][y+b]=1 dfs(x+a,y+b,s+1) vis[x+a][y+b]=0 t=int(input()) raw=[] for x in range(t): raw.append(map(int,input().split())) for n,m,x,y in raw: res=0 vis=[[0 for x in range(m)] for y in range(n)] vis[x][y]=1 dfs(x,y,1) print(res)
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:612 |
字符串问题 (C语言代码)浏览:1635 |
ASCII帮了大忙浏览:797 |
WU-输入输出格式练习 (C++代码)浏览:1133 |
三角形 (C++代码)递归(存在大量重复计算,容易出现时间超限)浏览:836 |
【计算直线的交点数】 (C语言代码)浏览:1501 |
Hello, world! (C++代码)浏览:1778 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1483 |
循环入门练习5 (C语言代码)浏览:907 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2256 |