APIO2010 特别行动队 $$\frac{f_j+a\times sum_j^2+b\times sum_j f_k a\times sum_k^2 b\times sum_k}{sum_j sum_k} 2asum_x$$ 转移点 $j,k$ ,当前点 $x$ ,右侧是单调降的 如果 $j k ...
分类:
其他好文 时间:
2020-05-05 11:02:03
阅读次数:
61
"Link" 题目大意:一段区间的贡献是$ax^2+bx+c,x=\sum v$,求一个划分让总区间的价值最大。分段必须连续。 $\text{Solution:}$ 设计$dp[i]$表示前$i$个人的最佳划分价值。那么有转移: $$dp[i]=\max_{j using namespace std ...
特别行动队题解 ~~刷水题什么的最愉快了。~~ 题意十分明了,就是选出一种分配方案将士兵分为若干组,使修正后的战斗力最大。 我们先可以写出暴力dp转移: 设$f[n]$为将前$i$个士兵分组,且第$i$个士兵为最后一组最后一个的最大战斗力。 $f[i]=max_{j=1}^{j define ll ...
分类:
其他好文 时间:
2019-08-22 16:05:49
阅读次数:
83
思路:斜率优化$DP$ 提交:$1$次 题解: 转移方程:$f[i]=\max(f[j]+A (s[i] s[j])^2+B (s[i] s[j])+C) 写成可以斜率优化的式子:$f[i]+A s[j]^2 B s[j]+C=2 A s[i] s[j]+f[i] A s[j]^2 B s[i]$ ...
题意 有一个序列,要求将其分为任意部分。对于每一部分,其值为$at^2+bt+c$,其中$t$为这一部分元素总和,$a,b,c$给定。 思路 容易推出状态转移方程为$f[i]=min(f[j]+a (sum[i] sum[j])^2+b (sum[i] sum[j])+c)$ 朴素转移的时间复杂度为 ...
DP+斜率优化 dp[i]表示在前第i个士兵在特别行动队中最后一个时战斗力的最大值 sum[i]表示战斗力的前缀和 答案一定是dp[n] dp[i]=dp[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum[j])+c 令j优于k,则得到 2*a*sum[i]*(sum[k]- ...
题目链接: "戳我" DP方程:$dp[i]=max(dp[i],dp[j]+a (sum[i] sum[j])^2+b (sum[i] sum[j])+c)$ ~~暴力还是可以过一些点的(不止20pts),甚至有人说他暴力水过去了。。。~~ 我们现在考虑正解,正解还是斜率优化。维护一个上凸包qwq ...
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1911 [算法] 设前i个士兵"修正"后的最大战斗力为fi 令sumi表示x的前缀和 显然 , 有状态转移方程 : fi = max{ fj + a * (sumi - sumj) ^ ...
基本上是一个斜率优化裸题了 cpp include using namespace std; typedef long long ll; const int maxn = 1e6+10; ll s[maxn],x[maxn],n,a,b,c,f[maxn],ss[maxn]; int q[maxn] ...
$\color{ 0066ff}{ 题目描述 }$ 你有一支由 $n$ 名预备役士兵组成的部队,士兵从 $1$ 到 $n$ 编号,要将他们拆分 成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如$(i, i + 1, ..., i + k)$的序列。 编号为 ...