1、前言 今天是APIO2010的题目,主要目的依旧是练习搜索(当然说是这么说)。感觉总体而言还是可做的,前两道似乎都比较适合骗分。2、Commando 特别行动队大概题意:给出一个序列,请划分成若干个子段,要求每一个子段和x变换为ax^2+bx+c后的总和最大。(a,b,c均已知,a<0)总结:....
分类:
其他好文 时间:
2015-08-21 23:04:54
阅读次数:
209
做完此题之后 自己应该算是真正理解了斜率优化DP根据状态转移方程f[i]=max(f[j]+ax^2+bx+c),x=sum[i]-sum[j]可以变形为 f[i]=max((a*sum[j]^2-b*sum[j])-(2a*sum[j]*sum[i]))+(a*sum[i]^2+b*sum[i]+...
特别行动队Description 这个好像斜率优化不是一般地明显了啊...只不过要分a的正负两种情况考虑是维护上凸还是下凸 1 /************************************************************** 2 Problem: 1911 3...
DP/斜率优化 嗯……第三道斜率优化的题目了。 定义 $s[i]=\sum_{k=1}^{i} x[k] $ 方程:$f[i]=max\{ f[j]+a*(s[i]-s[j])^2+b*(s[i]-s[j])+c \} $ 对于 $ j > k $ 若决策 j 比 k 更优:\[ \beg...
题解:
首先裸dp方程为:
F(x)=a*x*x+b*x+c; sum为前缀和
f[i]=f[j]+F(sum[i]-sum[j]);
然后拆开后把带j的放一边,带i的放一边,形成y=kx+b的形式,使y和x都含j不含i,k和b都含i不含j。
得:f[j]+asum[j]*sum[j]-b*sum[j]=2*a*sum[i]*sum[j]+f[i]-a*sum[i]*sum...
分类:
Windows程序 时间:
2014-12-01 17:45:57
阅读次数:
1007
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1911分析:首先可以的到裸的方程f[i]=max{f[j]+a*(Si-Sj)^2+b*(Si-Sj)+c} 0f[y]+a*(Si-Sy)^2+c整理一下:(f[x]+a*Sx^2)-(f[y]...
其实这题一看知道应该是DP,再一看数据范围肯定就是单调队列了。不过我还不太懂神马单调队列、斜率优化……附上天牛的题解:http://www.cnblogs.com/neverforget/archive/2012/04/19/2456483.html
1 var f,g:array[0..10000...
【原题】
1911: [Apio2010]特别行动队
Time Limit: 4 Sec Memory Limit: 64 MB
Submit: 2134 Solved: 911
[Submit][Status]
Description
Input
Output
Sample Input
4
-1 10 -20
2 2 3 4
...