动态规区间dp做这道题的话应该是n^3,下面的代码优化到了n^2,用四边形不等式优化。 设mid[i][j]是dp[i][j]的最优解的断点,即它左区间的右端点,那么mid[i][j-1]<=mid[i][j]<=mid[i+1][j],所以在求解dp[i][j]时,枚举k可以只枚举这两个值之间枚举 ...
分类:
其他好文 时间:
2017-07-17 23:58:24
阅读次数:
418
石子合并 链接 分析:dp[i][j]表示从i顺时针数j个位置的最大值,规划方向是顺推,初始时dp[i][i]=0。显然,我们需要求出合并个数为2,3,,,,n的情况,对于dp[i][j]我们假设最后一次合并位置为k,dp[i][j]=dp[i][k]+dp[k+1][j]+sum[i,j],因为s ...
分类:
其他好文 时间:
2017-07-16 21:30:34
阅读次数:
137
石子合并(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。 输入 有多组 ...
分类:
其他好文 时间:
2017-06-20 12:34:00
阅读次数:
149
这道题算是最简单的区间dp了。。非常久之前写的,搞懂原理了就1A。 传送门:http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1181 状态方程定义: dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+s ...
分类:
其他好文 时间:
2017-06-06 19:55:47
阅读次数:
200
题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分. 输入输出格式 输入格式: 数据的第1行试正整数N,1≤N≤100,表示有N ...
分类:
其他好文 时间:
2017-06-03 10:01:55
阅读次数:
176
题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分. 输入输出格式 输入格式: 数据的第1行试正整数N,1≤N≤100,表示有N ...
分类:
其他好文 时间:
2017-05-27 21:53:38
阅读次数:
232
石子合并 题目描述 在一个圆形操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆。规定每次只能选取相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 编一程序,读入石子堆数n及每堆的石子数(<=20)。选择一种合并石子的方案,使得做n-1次合并,得分的总和最小 ...
分类:
其他好文 时间:
2017-05-23 14:23:28
阅读次数:
164
先放上luogu的石子合并题目链接 这是一道环形DP题,思想和能量项链很像,在预处理过程中的手法跟乘积最大相像。 用一个m[][]数组来存储石子数量,m[i][j]表示从第 i 堆石子到第 j 堆石子的总数。 接下来三重循环 i 表示合并操作的起始位置, j 表示合并操作的终点,也就是把 i 到 j ...
分类:
其他好文 时间:
2017-05-20 10:13:24
阅读次数:
287
51Nod - 1021 石子归并 N堆石子摆成一条线。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价。计算将N堆石子合并成一堆的最小代价。 例如: 1 2 3 4,有不少合并方法 1 2 3 4 => 3 3 4(3) => 6 4( ...
分类:
其他好文 时间:
2017-05-15 22:21:35
阅读次数:
219
2102 石子归并 2codevs 题目描述 Description 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分. 输入描述 In ...
分类:
其他好文 时间:
2017-04-22 12:28:33
阅读次数:
202