赞
踩
- """
- 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)
-
-
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
参考:
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。