随笔分类 - 动态规划
混乱的奶牛(mix up2)
摘要:http://61.187.179.132/JudgeOnline/problem.php?id=1231问题描述Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i(1 <= S_i <= 25,000). 奶牛为她们的编号感到骄傲, 所以每一头奶牛都把她的编号刻在一个金牌上, 并且把金牌挂在她们宽大的脖子上. 奶牛们对在挤奶的时候被排成一支\"混乱\"的队伍非常反感. 如果一个队伍里任意两头相邻的奶牛的编号相差超过K (1 <= K <= 3400), 它就被称为是混乱的. 比如说,当N =
阅读全文
书的复制
摘要:题目见:http://www.rqnoj.cn/Problem_349.html分析 所求为所需最小时间,而最短的时间又决定于最慢的人。对一个区间,分出j-1份(j个人)可以等价于,将区间分成两部分,一部分由j-1个人完成,另一部分有一个人完成,那么一定存在一个中间的位置取得最优值。据此可以写出转移方程f[i,j]:=max(f[k-1,j-1],s[i]-s[k-1])。其中,f[i,j]表示到第i本书分给j个人的最优值,s表示区间和。 由于本题对方案有特殊要求,所以不能简单的在动规过程中记录方案,动规中方案的记录,只是当前区间的最优方案,并不是满足题意的方案,所以必须从后向前去推,是每个人
阅读全文
SCOI2003 字符串折叠(区间dp)
摘要:题目:http://61.187.179.132/JudgeOnline/problem.php?id=1090 本题首先要要看出是典型的区间动态规划,对于一个区间的最优值,是满足无后效性的(可以类比一下合并石子),那么就开始写方程了,用f[i,j]表示从i到j的最短长度。所以有f[i,j]:=min{f[i,k]+f[k+1,j],f[i,k]+2+数字长度}其含义为,ij区间的最小值,为两个拆开的长度之和或者是自身的折叠。 在判断折叠的时候,用倍数作为前提来卡区间,就可以很好地判断code:program third;var f : array[0..200,0..200] of ...
阅读全文
动归方程扩大范围(poj3666 usaco路面修整、整数划分)
摘要:1.路面修整(making the grade)http://poj.org/problem?id=3666http://61.187.179.132/JudgeOnline/problem.php?id=1592 首先需要预处理,即将所有的高度离散,转化为数组b,b[i]表示第i大的数 用f[i,j]表示到第i个点,更改后高度是第j大的数,则朴素的方程是f[i,j]:=min{f[i-1,k]+abs(a[i]-b[j]),其中需要枚举的变量是i,j,k(增减性通过控制k的大小,k小于j为增,大于j为减),时间复杂度为n3,显然会超时。 优化:扩大定义范围,即f[i,j]表示到第i个点,高度
阅读全文
比赛——动态规划的数学优化
摘要:如要转载,请标明出处!题目描述新兵们一般在部队没什么娱乐活动,而且还老有个警官在旁边即即歪歪,所以他们总要找个法子发一下怒气,所以有时候两个不同营的新兵就喜欢一起打架。。。。。。A营和B营就是典型的例子。而且他们破坏力很大,常常把操场打得这里坑一块那里坑一块,警官很头疼,因为都要他掏腰包。。。。。。为了减少损失,他决定每隔一段时间由他自己组织搞次比赛(打架)。比赛开始时两个营新兵排成两个队,每个士兵有一个破坏值,然后由警官来安排比赛的人,分任意次来PK,可以是单挑,群挑,或者是单挑群(呵呵,警官只在乎修整费用最少)具体规则如下:从后往前,每次从A营选出连续k1(k1>0)个人,从B营选出
阅读全文
浙公网安备 33010602011771号