随笔分类 - 动态规划——区间
摘要:一道别样的区间dp,重点在于对字符串的处理。 读完题,我们很自然的想到区间dp,定义f[i][j]表示从折叠i~j的部分的最小长度,那么答案为f[1][n]。 区间dp的转移一般而言都是一样的,在区间中枚举一个位置,使这一个大区间分成两个小区间。因此状态转移方程我们不在赘述。 我们重点探讨一下对于字
阅读全文
摘要:一道区间dp题,容易设计状态表示f[l][r]表示s[l~r]可能对应多少中金字塔方案数。 我们考虑在[l,r]中枚举一个k使得[l+1,k-1]作为l的一棵子树。那么s[l]应该等于s[k],状态转移方程为f[l][r]=∑f[l+1][k-1]*f[k][r]; 注意数据范围可能超过int,所以
阅读全文
摘要:一道区间dp题,不少细节。 一开始我想定义f[i][j]表示区间[i,j]通过某种合并之后的最大值,之后这道题就等同于“NOI1995石子合并”。 但是转念一想,这道题有加法和乘法两种运算,如果单看加法,以上思路正确。但是因为乘法的存在,两个较小的数(负数)相乘或许会大于两个最大数相乘,因此以上思路
阅读全文
摘要:区间动态规划的经典题,关于区间dp,状态定义是很显然的,定义f[i][j]表示把i~j这一区间合并花费的最小值,若i=j,则f[i][j]=0,若i≠j,则在i,j当中必定有一点k,使得i,j的区间先合并成i,k和k+1,j,然后合并成i,j.因此,对于每一对i,j,我们都枚举k,那么f[i][j]
阅读全文