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])

 

posted @ 2021-01-18 15:03  一个只会爆零的小菜鸡  阅读(1256)  评论(0编辑  收藏  举报