P1880 [NOI1995] 石子合并(python3实现)

[NOI1995] 石子合并 - 洛谷

"""

P1880 [NOI1995] 石子合并(python3实现)
https://www.luogu.com.cn/problem/P1880

"""

import math

f=[[2147483647] * 310 for _ in range(310)]

f1=[[-1] * 310 for _ in range(310)]

a=[0]*310
s=[0]*310

n=int(input())

#a.append(0)

b=list( map(int,input().split() ) ) 

for i in range(n):
        a[i+1]=b[i]

#print(a)

#for x in  input().split():#列表b里面的数据类型是字符串
#    a.append(x)

for i in range(1,n+1):

            a[i+n]=a[i]

#print(a)

for i in range(1,2*n+1):

            s[i]=s[i-1]+a[i]

for i in range(1,2*n+1):

            f[i][i]=0
            f1[i][i]=0

for lenx in range(2,n+1):
            i=1
            while i+lenx-1<=2*n:
                        j=lenx+i-1

                        for k in range(i,j):
                                    f[i][j]=min(f[i][k]+f[k+1][j],f[i][j])
                                    f1[i][j]=max(f1[i][k]+f1[k+1][j],f1[i][j])
                                    
                        f[i][j]+=s[j]-s[i-1]

                       
                        f1[i][j]+=s[j]-s[i-1]

                        i+=1



ans1=2147483647
ans2=-1

for i in range(n):
            ans1=min(ans1,f[i][i+n-1])
            ans2=max(ans2,f1[i][i+n-1])


print(ans1)
print(ans2)




参考:

python初始化list列表(1维、2维)
https://www.cnblogs.com/zqifa/p/python-list.html

python中列表list的初始化及增删改查(好)
https://blog.csdn.net/ai_XX/article/details/103300511

python list中append()方法和extend()方法区别 
https://www.cnblogs.com/wujingqiao/p/9651992.html

Python 获取最大值函数
https://www.runoob.com/python3/python3-largest-number.html

[python] List添加元素的4种方法
https://blog.csdn.net/weixin_43026262/article/details/105553180

Python 数据的输入 
https://www.cnblogs.com/-citywall123/p/11545328.html

python实现将读入的多维list转为一维list的方法
https://www.jb51.net/article/142770.htm

python创建二维列表的两种方法
https://blog.csdn.net/liangjiubujiu/article/details/82153095

python二维列表(list)初始化
https://www.cnblogs.com/Renyi-Fan/p/13217355.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dllglvzhenfeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值