摘要: 题目连接:http://new.tyvj.cn/Problem_Show.aspx?id=1215思路:方程再简单不过了:dp[i]表示以第i个人为某一组最后一个人的总战斗值dp[i]=max(dp[j]+F(sum[i]-sum[j]))其中F(x)=A*x*x+B*x+C sum[i]表示战斗值的前缀和显然n^2的方程,只能得到20分单调性显然,那么就开始我们的斜率优化设j<k且满足k比j更优dp[j]+A*(sum[i]-sum[j])^2+B*(sum[i]-sum[j])+C<=dp[k]+A*(sum[i]-sum[k])^2+B*(sum[i]-sum[k])+C化简 阅读全文
posted @ 2012-10-06 20:00 proverbs 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 前记:好像半年前就见过这道题,折腾了半天都不会,刚学斜率优化,发现这题挺经典的,也不难,只要能想到倒推~题意:N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务。 从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti。在每批任务开始前,机器需要启动时间S,而完成这批任务所需的时间是各个任务需 要时间的总和(同一批任务将在同一时刻完成)。每个任务的费用是它的完成时刻乘以一个费用系数Fi。请确定一个分组方案,使得总费用最小。分析:dp[i] = min(dp[j] + (s + sumt[i] - sumt[j]) *sumf[ 阅读全文
posted @ 2012-10-06 18:23 proverbs 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 此题有是方程好写,优化很难(对于神犇们,简直太水了)的一道题建议做这道题之前先看这道题:http://www.lydsy.com/JudgeOnline/problem.php?id=1010题意:将一个升序的,有N个元素的序列,分组。要求每组的元素不少于K个,计算出组内各元素与最小元素的之差的和,将每组的这个值加起来,其和要最小。思路:由以上可得DP方程:dp[i]=MIN(dp[j]+sum[i]-sum[j]-(i-j)*arr[j+1]); j<i-k+1开始斜率优化(不考虑每组不少于K个元素):1.证明较优决策点对后续状态影响的持续性证明很简单,不证了,有兴趣的话,参考上一篇文 阅读全文
posted @ 2012-10-06 17:01 proverbs 阅读(425) 评论(0) 推荐(0) 编辑