求助python
查看原帖
求助python
649127
cy1125楼主2022/3/17 10:38

N=int(input().strip())

juzhen=[[0 for i in range(N+1)] for j in range(N+1)]

sign=1

while sign:

x,y,z=map(int,input().split())

juzhen[x-1][y-1]=z

if z==0:

    sign=0

k=N*2+1

f=[[[0 for i in range(N+1)] for l in range(N+1)] for j in range(k)]

for i in range(2,k):

for j in range(min(N,i)):

    for l in range(min(N,i)):


        if l==0 or j==0:
            continue

        if i>=N:
        
            f[i][j][l]=max(max(f[i-1][j][l],f[i-1][j-1][l]),max(f[i-1][j][l-1],f[i-1][j-1][l-1]))+juzhen[N-j][j]+juzhen[N-l][l]

            if j==l:
            
                f[i][j][l]=f[i][j][l]-juzhen[N-j][j]
                
        else:
        
            f[i][j][l] = max(max(f[i-1][j][l],f[i-1][j-1][l]),max(f[i-1][j][l-1],f[i-1][j-1][l-1])) + juzhen[i - j][j] + juzhen[i - l][l]

            if j == l:
            
                f[i][j][l] = f[i][j][l] - juzhen[i - j][j]

print(f[k-1][N-1][N-1])

2022/3/17 10:38
加载中...