\(\text{solution}\)

比较显然的 \(dp\)

顺序既然无所谓,那为了方便处理贡献,就先排个序

然后设 \(f_i\) 表示分到前 \(i\) 个的最小工资

则 \(f_i=C+f_j+{(t_i-t_{j+1})}^2=C+f_j+{t_i}^2+{t_{j+1}}^2-2 \times t_i \times t_{j+1}\)

斜率优化下

若有 \(k<j\),\(j\) 比 \(k\) 优

那么 \(((f_j+{t_{j+1}}^2)-(f_k+{t_{k+1}}^2))/(t_{j+1}-t_{k+1})<2\times t_i\)

单调队列维护下凸壳即可

#include<cstdio>
#include<algorithm>
#define LL long long
using namespace std; const int N = 1e6 + 5;
const LL INF = 1e18;
LL f[N], t[N];
int n, k, C, Q[N]; inline void read(LL &x)
{
x = 0; char ch = getchar();
while (ch < '0' || ch > '9') ch = getchar();
while (ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar();
} inline double slope(int j, int k)
{
return 1.0 * (f[j] + t[j + 1] * t[j + 1] - f[k] - t[k + 1] * t[k + 1]) / (t[j + 1] - t[k + 1]);
} int main()
{
scanf("%d%d%d", &n, &k, &C);
for(int i = 1; i <= n; i++) read(t[i]);
sort(t + 1, t + n + 1);
int head = 1, tail = 1;
for(int i = 1; i < k; i++) f[i] = INF;
for(int i = k; i <= n; i++)
{
while (head < tail && slope(Q[head + 1], Q[head]) < t[i] * 2) head++;
f[i] = C + f[Q[head]] + (t[i] - t[Q[head] + 1]) * (t[i] - t[Q[head] + 1]);
while (head <= tail && t[Q[tail]] == t[i - k + 1])
{
if (f[i - k + 1] <= f[Q[tail]]) tail--;
else break;
}
while (head < tail && slope(i - k + 1, Q[tail]) < slope(Q[tail], Q[tail - 1])) tail--;
Q[++tail] = i - k + 1;
}
printf("%lld\n", f[n]);
}

最新文章

  1. Web渗透测试使用Kali Linux(一)渗透测试概要及环境部署
  2. php匹配中文代码(字符串中包含中文或者全是中文)
  3. Gson 的使用
  4. amd(超微半导体公司(英语:Advanced Micro Devices, Inc.,缩写:AMD))
  5. 挣值管理不是搞数字游戏(3)——进阶指标:CV、SV、CPI、SPI、EAC
  6. keybd_event 转载
  7. 港交所OMD-C对接笔记
  8. java书写、数据类型、数组定义
  9. python笔记:#007#变量
  10. [Swift]LeetCode719. 找出第 k 小的距离对 | Find K-th Smallest Pair Distance
  11. 利用Python+163邮箱授权码发送带附件的邮件
  12. Cash Machine POJ - 1276 多重背包二进制优化
  13. 51Nod 1058 N的阶乘的长度
  14. [luogu P3369]【模板】普通平衡树(Treap/SBT)
  15. 搭建zookeeper伪分布式集群
  16. Maven传递依懒
  17. IO 和 NIO 的区别
  18. hive数据导入导出和常用操作
  19. 让 Git 全局性的忽略 .DS_Store
  20. Intent 的Flag属性(Activity在栈位置的主宰者)

热门文章

  1. 解决"raise EnvironmentError("%s not found" % (_mysql_config_path,)) OSError: mysql_config not found"报错
  2. Vue2组件间通讯
  3. jquery操作class
  4. Mybatis-Plus 对 json 的存储使用支持
  5. 监控Kubernetes集群证书过期时间的三种方案
  6. Javascript | 模拟mvc实现点餐程序
  7. vue项目引入echarts柱状图
  8. TiDB上百T数据拆分实践
  9. [深度学习] CNN的基础结构与核心思想
  10. Flutter异常监控 - 肆 | Rollbar源码赏析