树形DP 说是树形DP,其实就是求树的最长链嘛…… K=1的时候明显是将树的最长链的两端连起来最优。 但是K=2的时候怎么搞? 考虑第一次找完树的最长链以后的影响:第一次找过的边如果第二次再走,对答案的贡献会变成-1,因为两次都选这一段的话,反而会使得这一段不得不走两次(如果只被选一次的话就...
题解:
对于 k==0k==0 的情况:
我们发现遍历一棵树最后回到原点,那么对于所有的边,我们都是走过去,再走回来。
答案 (n?11)(n-1
对于 k==1k==1 的情况
设每条边长度为1,然后树上找最长链,然后这条链走过去就不再一步步往回了,直接从链底连一条边去链顶,然后链中间连的那些点,直接走过去再走回来,它们那些边的答案是不变的。
答案 (n?11)?(链长度)+1(n-...
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
其实这题一看知道应该是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
...