笔者的第一语言为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]]=True10 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 ifp[i][j]:16 continue
17 F[i][j] = F[i-1][j] + F[i][j-1]18 print(F[n][m])