求助!!!为啥2 3 4过不了
查看原帖
求助!!!为啥2 3 4过不了
1225159
The_Coding_The_Happy楼主2024/3/14 15:47
n=int(input())
l=list(map(int,input().split()))
l=l*2
l.insert(0,0)
p=[0]
dp=[[0 for i in range(2*n+1)]for i in range(2*n+1)]
dp2=[[0 for i in range(2*n+1)]for i in range(2*n+1)]
for i in range(1,2*n+1):
    p.append(l[i]+p[i-1])
    dp[i][i]=0
    dp2[i][i]=0
for lenl in range(1,n):
    for i in range(1,2*n+1-lenl):
        j=i+lenl
        for k in range(i,j):    
            if dp[i][j]==0:
                dp[i][j]=dp[i][k]+dp[k+1][j]+p[j]-p[i-1]
            else:
                dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+p[j]-p[i-1])
for len2 in range(1,n):
    for i in range(1,2*n+1-len2):
        j=i+len2
        for k in range(i,j):
            dp2[i][j]=max(dp[i][j],dp2[i][k]+dp[k+1][j]+p[j]-p[i-1])
maxsum=0
minsum=100000000000000000000000000000000000000000000
for i in range(1,n+1):
    if dp2[i][i+n-1]>maxsum:
        maxsum=dp2[i][i+n-1]
    else:
        pass
    if dp[i][i+n-1]<minsum:
        minsum=dp[i][i+n-1]
    else:
        pass
print(minsum)
print(maxsum)
2024/3/14 15:47
加载中...