def solution(): m = int(input()) n = int(input()) _matrix = [] for _ in range(m): mat_temp = list(map(int, input().split())) _matrix.append(mat_temp)   def dfs(matrix, rows, cols, i, j, cur_num):   if i < 0 or i >= rows or j < 0 or j >= cols: # 越界 return 0 if visited[i * n + j]: # 已访问 return 0 if matrix[i][j] <= cur_num: # 非递增 return 0 visited[i * cols + j] = True num = 1 + max(dfs(matrix, rows, cols, i + 1, j, matrix[i][j]), \ dfs(matrix, rows, cols, i, j + 1, matrix[i][j]), \ dfs(matrix, rows, cols, i - 1, j, matrix[i][j],), \ dfs(matrix, rows, cols, i, j - 1, matrix[i][j],)) return num max_val = 0   for i in range(m): for j in range(n): visited = [False for _ in range(m * n)]   k = dfs(_matrix, m, n, i, j, float('-INF')) max_val = max(max_val,k) return max_val res = solution() print(res)
点赞 8

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务