函数
1 def check(x,y):
2 if x<0 or x>n or y>m or y<0:
3 return False
4 else :
5 return True
类似C的
1 int check(int x,int y)
2 {
3 if(x<0 || x>n || y>m || y<0)
4 return 0;
5 else
6 return 1;
7 }
二维数组
可以使用下面的方法初始化一个二维数组
1 dp=[[0]*25 for _ in range(25)]
类似C语言
1 dp[25][25];
2 memset(dp,0,sizeof(dp));
for
python
1 for i in range(n,-1,-1):
类似C
1 for(int i=n;i>-1;i--)
代码
1 List = []
2 dp=[[0]*25 for _ in range(25)]
3 N=[(1,2),(-1,2),(1,-2),(-1,-2),(2,1),(2,-1),(-2,1),(-2,-1)]
4 def check(x,y):
5 if x<0 or x>n or y>m or y<0:
6 return False
7 else :
8 return True
9 s=input().split()
10 n=int(s[0])
11 m=int(s[1])
12 x=int(s[2])
13 y=int(s[3])
14 List.append((x,y))
15 for i in range(0,8):
16 if check(x+N[i][0],y+N[i][1]):
17 List.append((x+N[i][0],y+N[i][1]))
18 dp[n][m]=1
19 for i in range(n,-1,-1):
20 for j in range(m,-1,-1):
21 if (i,j) in List:
22 dp[i][j]=0
23 else:
24 if i!=n or j!=m:
25 dp[i][j]=dp[i+1][j]+dp[i][j+1]
26 print(dp[0][0])