只有#2 RE,求助
查看原帖
只有#2 RE,求助
59500
赵子骏楼主2021/3/31 15:05
import copy
import numpy as np
global length
global height
global R
global C


def search(h, y, x):
    # 如果到头 length[y][x]=0 return 0
    # 往四个方向出发(如果可以)
    # length[y][x] = max[四个方向] + 1
    if length[y][x] != -1:
        return length[y][x]
    l,r,u,d = True, True, True, True
    ch = height[y][x]
    #print('y=%d,x=%d'%(y,x))
    if x <= 0 or ch >= height[y][x-1]:
        l = False
    else:
        search(h,y,x-1)
        length[y][x] = max(length[y][x], length[y][x-1]+1)
    if x >= C-1 or ch >= height[y][x+1]:
        r = False
    else:
        search(h,y,x+1)
        length[y][x] = max(length[y][x], length[y][x+1]+1)
    if y <= 0 or ch >= height[y-1][x]:
        d = False
    else:
        search(h,y-1,x)
        length[y][x] = max(length[y][x], length[y-1][x]+1)
    if y >= R-1 or ch >= height[y+1][x]:
        u = False
    else:
        search(h,y+1,x)
        length[y][x] = max(length[y][x], length[y+1][x]+1)
    if not (l or r or u or d):
        length[y][x] = 0




def f(h):
    for y in range(R):
        for x in range(C):
            search(h, y, x)


R, C = [int(i) for i in input().split()]
height = []
length = []
for i in range(R):
    height.append([int(j) for j in input().split()])
for y in range(R):
    length.append([])
    for x in range(C):
        length[y].append(-1)
#print(np.array(height))
f(height)
ans = 0
for y in range(R):
    for x in range(C):
        ans = max(ans, length[y][x])
print(ans+1)
2021/3/31 15:05
加载中...