题意 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如(i, i + 1, ..., i + k)的序列。 编号为 i 的士兵的初始战斗力为 xi ,一支特别行动队的初始战斗力 ...
"嘟嘟嘟" 这道题dp式特别好想: $$dp[i] = max_{j = 0} ^ {i 1} (dp[j] + f(s[i] s[j]))$$ 其中$f(x) = ax^ 2 + bx + c$,$s[i] = \sum_{j = 1} ^ {i} x[j]$。 但是$O(n ^ 2)$过不了,需 ...
Description Input Output Sample Input 4 -1 10 -20 2 2 3 4 Sample Output 9 HINT 似乎逐渐掌握了斜率优化的规律,,, 1 #include<iostream> 2 #include<cstdio> 3 using names ...
一道斜率优化DP 首先,什么是斜率优化: 其实就是找斜率的方式将DP方程转换为y = kx+b的形式。 如果对于方程形如这样的 $F[i] = min{F[j] + Sum[i,j]} + k$(k为常数) 我们不能对其进行比较有效果的优化,因为它的转移,涉及到了关于i和关于j的一些数组,这时我们就 ...
题目链接 "bzoj1911: [Apio2010]特别行动队" 题解 首先,状态转移方程 $f_i = max(f_j+A(S_i S_j)^2+B(S_i S_j)+C)$ 在这里总结一下推斜率优化的两种方法吧 直接推呀: 设$jf_k+A(S_i S_k)^2+B(S_i S_k)+C$$ $ ...
Description 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如 (i, i + 1, ..., i + k)(i,i+1,...,i+k) 的序列。 编号为 i 的士兵 ...
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1911 Algorithm: DP方程:dp[i]=max(dp[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum[j])+c) 方程是显然的,但复杂度为O(N^2) ...
分类:
其他好文 时间:
2018-05-18 23:31:02
阅读次数:
182
[APIO2010]特别行动队 题面很直白,就不放了。 太套路了,做起来没点感觉了。 \(dp(i)=dp(j)+a*(s(i)-s(j))^{2}+b*(s(i)-s(j))+c\) 直接推出一个斜率优化的式子上单调队列就好了 时间/空间复杂度:\(O(n)\) #include<cstdio> ...
题目描述 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如 (i, i + 1, ..., i + k)(i,i+1,...,i+k) 的序列。 编号为 i 的士兵的初始战斗力为 ...