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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM