笔者的第一语言为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])