Python二维数组,for循环,函数
函数
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--)
题目:洛谷P1002
代码
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])