上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 33 下一页
摘要: 题目大意:n堆石子围成一圈,每堆石子的块数已知,每次可以将相邻的两堆合并到一堆,块数变为两堆之和,代价也为两堆石子块数之和。求合并到一堆的最小代价。 题目分析:先通过将前n-1依次个移到第n个后面,将环变成线。定义状态dp(i,j)表示将区间(i,j)的石子合并所需的最小代价,则状态转移方程为dp( 阅读全文
posted @ 2016-03-19 16:31 20143605 阅读(1620) 评论(0) 推荐(0) 编辑
摘要: 题目大意:将n个数分成m组,将每组的最大值与最小值的平方差加起来,求最小和。 题目分析:先对数排序。定义状态dp(i,j)表示前 j 个数分成 i 组得到的最小和,则状态转移方程为dp(i,j)=min(dp(i,k-1)+w(k,j)),其中w(i,j)=(a[i]-s[j])*(a[i]-a[j 阅读全文
posted @ 2016-03-19 11:12 20143605 阅读(423) 评论(0) 推荐(1) 编辑
摘要: 题目大意:有n个敌方军火库呈直线排列,每个军火库有一个值vi,并且任意相邻的两个库之间都有通道相连。对于任意一条连起来的军火库链,它对我方的威胁可以用函数w(i,j)表示为:w(i,j)=vi*sum(i+1,j)+w(i+1,j) i<j; w(i,j)=0 i=j; 现在,你有m个炸弹,每颗可以 阅读全文
posted @ 2016-03-18 00:21 20143605 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有v个村庄成直线排列,要建设p个邮局,为了使每一个村庄到离它最近的邮局的距离之和最小,应该怎样分配邮局的建设,输出最小距离和。 题目分析:定义状态dp(i,j)表示建设 i 个邮局最远覆盖到第 j 个村庄时最小距离和。容易得到dp(i,j)=min(dp(i-1,k-1)+w(k,j)), 阅读全文
posted @ 2016-03-17 21:32 20143605 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给两个字符串s,t,用s中的字符重新组合构造出按字典序最小的但比t大的新字符串。 题目分析:先统计s中各个字母出现的次数,然后从t的左端向右端依次构造出新串的每一位上的字母。这个过程我是用回溯实现的,因为只需进行到字典序比t大就可以立即停止,所以实际上花不了多少时间。 代码如下: 阅读全文
posted @ 2016-03-16 23:46 20143605 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给一个长度为n的区间,m条线段序列,找出这个序列的一个最短子序列,使得区间完全被覆盖。 题目分析:这道题不难想,定义状态dp(i)表示用前 i 条线段覆盖区间1~第 i 线段的右端点需要的最少数目,状态转移方程为dp(i)=min(dp(j))+1。其中第 j 条线段与第 i 条线段有交集 阅读全文
posted @ 2016-03-12 17:09 20143605 阅读(809) 评论(0) 推荐(1) 编辑
摘要: 题目大意:n个俄罗斯套娃,都有相应的编号,每次可将两个相邻的套娃组合成一组,每次合成只能小的放到大的里面,并且是逐层嵌套。问将这n个套娃分成若干个组,并且每组都是编号从1开始的连续序列,最少需要几步。 题目分析:很显然的区间DP,只不过每次DP未必是在整个区间,而是在子区间上。 代码如下: # in 阅读全文
posted @ 2016-03-09 22:38 20143605 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 题目大意:在n个数中,找出k个三元组(a<=b<=c),求最小的(a-b)*(a-b)之和。 题目分析:将所有数从大到小排序,定义dp(i,j)表示前 i 个数中找出 j 个三元组时的最小和,则状态转移方程为dp(i,j)=min(dp(i-1,j),dp(i-2,j-1)),第二种决策是在前i-1 阅读全文
posted @ 2016-03-07 21:55 20143605 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有n支筷子,已知长度,定义一双筷子的质量等于长度的平方差,问能否分成k双?若能,输出所有筷子的最小质量和。 题目分析:先将筷子按长度从小到大排序,定义状态dp(i,j)表示将前 i 支筷子分成 j 双的最小质量和,则状态转移方程为dp(i,j)=min(dp(i-1,j),dp(i-2,j 阅读全文
posted @ 2016-03-07 19:51 20143605 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给一些邮票的面值组合,找出在限定的张数范围内能组合出连续最大值得那个组合。 题目分析:状态可以这样定义:dp(k,u)表示u能否用k张邮票组合成。状态转移方程很显然了。 代码如下: # include<iostream> # include<cstdio> # include<cstrin 阅读全文
posted @ 2016-03-01 16:59 20143605 阅读(297) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 33 下一页