create dev channel
This commit is contained in:
32
zeta/py/completed/1520.py
Normal file
32
zeta/py/completed/1520.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import sys
|
||||
|
||||
sys.setrecursionlimit(1 << 16)
|
||||
|
||||
|
||||
def solve(M, N, U):
|
||||
"""get count of pathes"""
|
||||
|
||||
Mem = [[-1 for _ in range(N)] for _ in range(M)]
|
||||
Mem[M - 1][N - 1] = 1
|
||||
|
||||
def dfs(now):
|
||||
x, y = now
|
||||
if Mem[x][y] != -1:
|
||||
return Mem[x][y]
|
||||
cnt = 0
|
||||
for i, j in ((1, 0), (-1, 0), (0, 1), (0, -1)):
|
||||
_x, _y = x + i, y + j
|
||||
if 0 <= _x < M and 0 <= _y < N and U[_x][_y] < U[x][y]:
|
||||
cnt += dfs((_x, _y))
|
||||
|
||||
Mem[x][y] = cnt
|
||||
return Mem[x][y]
|
||||
|
||||
dfs((0, 0))
|
||||
return Mem[0][0]
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
M, N = map(int, input().split())
|
||||
U = [list(map(int, input().split())) for _ in range(M)] # U[m][n]
|
||||
print(solve(M, N, U))
|
||||
Reference in New Issue
Block a user