P1002 过河卒(python) 解题报告

笔者的第一语言为C++,初学python,代码如有可改进之处,欢迎讨论(不过代码都已经过测评且AC)

                                     -----------Check_XY


引言

放暑假了,终于有空余时间自学一下python(虽然物竞、数竞和文化课几乎挤扁了我的空余时间)

就从我以前刷过的C++的题开始吧

以前为OI刷题的时候,并没有养成经常写解题报告的习惯

经过一番考虑,决定记录我的python解题,此随笔为第一弹


题目链接

算法:DP(有空补个DFS)

由于是水题,不附解析了,如果小白想了解算法可以看其它语言的题解,大多都讲得很清楚

 1 a = [0,-1,-2,-2,-1,1,2,2,1,0]
 2 b = [0,2,1,-1,-2,-2,-1,1,2,0]
 3 p = [[False for i in range(25)]for i in range(25)]
 4 F = [[0 for i in range(25)]for i in range(25)]
 5 n,m,x,y = map(int,input().split(' '))
 6 n+=1; m+=1; x+=1; y+=1;
 7 for i in range(1,10):
 8     if x+a[i]>0 and y+b[i]>0:
 9         p[x+a[i]][y+b[i]]=True
10 F[1][1] = 1
11 for i in range(1,n+1):
12     for j in range(1,m+1):
13         if i==1 and j==1:
14             continue
15         if p[i][j]:
16             continue
17         F[i][j] = F[i-1][j] + F[i][j-1]
18 print(F[n][m])

 

posted @ 2020-07-27 21:27  octal_zhihao  阅读(770)  评论(0编辑  收藏  举报