【BZOJ 4518】【SDOI 2016 Round1 Day2 T3】征途
比较明显的斜率优化DP,省选时因为时间太紧张和斜率DP写得不熟等原因只写了60分的暴力DP,其实当时完全可以对拍来检验标算的正确,但是我当时too naive~
很快打完了,调了将近一晚上QAQ,因为脑残地把两个变量名打反了。错在这上面却只有一组WA,所以总是在想一些奇葩的错误(数组越界什么的,int没有强转long long←几天前做数论和FFT留下的后遗症),没有先认真地静态查错。以后一定要认真仔细,杜绝手残的行为!比赛时绝不会有这么长的调试时间,手残一次就会滚粗了QuQ
#include<cstdio>
#include<cstring>
#include<algorithm>
#define read(x) x=getint()
using namespace std;
int getint() {
long long k = 0; int fh = 1; char c = getchar();
for(; c < '0' || c > '9'; c = getchar())
if (c == '-') fh = -1;
for(; c >= '0' && c <= '9'; c = getchar())
k = k * 10 + c - '0';
return k * fh;
}
long long sqr(int x) {return 1LL * x * x;}
long long f[3003][3003];
int n, m, a[3003], sum[3003], q[3003], head, tail, h, t;
bool cmpdown(int j, int x, int y, int i) {
return (f[x][j - 1] - f[y][j - 1] + sqr(sum[x]) - sqr(sum[y])) * (sum[y] - sum[i])
> (f[y][j - 1] - f[i][j - 1] + sqr(sum[y]) - sqr(sum[i])) * (sum[x] - sum[y]);
}
int main() {
read(n); read(m);
for(int i = 1; i <= n; ++i)
read(a[i]);
sum[0] = 0;
for(int i = 1; i <= n; ++i)
sum[i] = sum[i - 1] + a[i];
for(int i = 1; i <= n; ++i)
f[i][1] = sqr(sum[i]);
for(int j = 2; j <= m; ++j) {
head = 1; tail = 0;
for(int i = 1; i <= n; ++i) {
while (head < tail && cmpdown(j, q[tail - 1], q[tail], i))
--tail;
q[++tail] = i;
while (head < tail
&& f[q[head]][j - 1] - f[q[head + 1]][j - 1] + sqr(sum[q[head]]) - sqr(sum[q[head + 1]])
> 2 * sum[i] * (sum[q[head]] - sum[q[head + 1]]))
++head;
f[i][j] = f[q[head]][j - 1] + sqr(sum[i] - sum[q[head]]);
}
}
long long ans = f[n][m] * m - sqr(sum[n]);
printf("%I64d\n", ans);
return 0;
}
没了TwT
【BZOJ 4518】【SDOI 2016 Round1 Day2 T3】征途的更多相关文章
- 【BZOJ 4517】【SDOI 2016 Round1 Day2 T2】排列计数
本蒟蒻第一次没看题解A的题竟然是省选$Round1$ $Day2$ $T2$ 这道组合数学题. 考试时一开始以为是莫队,后来想到自己不会组合数的一些公式,便弃疗了去做第三题,,, 做完第三题后再回来看 ...
- 【BZOJ 4515】【SDOI 2016 Round1 Day1 T3】游戏
考场上写了lct,可惜当时对标记永久化的理解并不是十分深刻,导致调一个错误的程序调了4h+,最后这道题爆0了QwQ 现在写了树链剖分,用标记永久化的线段树维护轻重链,对于$s\rightarrow l ...
- SDOI 2016 Round1 Day2
生成魔咒 /* 后缀数组+双向链表 参照:https://blog.csdn.net/clove_unique/article/details/53911757 */ #include<cstd ...
- 【BZOJ 4598】【SDOI 2016 Round2 Day1 T3】模式字符串
2016-05-21因为BZOJ上“ 数据文件太过巨大,仅提供前三组数据测试.”所以我考场上写的60分的点分治交上去也A了. 我的这个点分治的时间复杂度是$O(Tnmlogn)$的,听题解时没听懂$O ...
- 【NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2】游记
我第一次写游记,,,, 正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪里?正文在哪 ...
- [BZOJ 4516] [SDOI 2016] 生成魔咒
Description 魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示.例如可以将魔咒字符 1.2 拼凑起来形成一个魔咒串 [1,2]. 一个魔咒串 S 的非空字串被称为魔咒串 S 的生成魔咒. 例 ...
- 【NOIP 2016】Day2 T3 愤怒的小鸟
Problem Description \(Kiana\) 最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于 \((0,0)\) 处,每次 \(Kiana\ ...
- SDOI 2016 Round1 Day1
储能表 /* 引自zyz大佬的数学思想 */ #include<cstdio> #include<iostream> using namespace std; typedef ...
- 【NOIP 2017】Day2 T3 列队
Problem Description \(Sylvia\) 是一个热爱学习的女孩子. 前段时间,\(Sylvia\) 参加了学校的军训.众所周知,军训的时候需要站方阵. \(Sylvia\) 所在的 ...
随机推荐
- 关于TD-LTE网络MRO分析中的一些疑问
1.eNB天线到达角(LteScAOA)超出正常值范围 在OMC-R测量报告技术要求中此字段的定义为: "定义了一个用户相对参考方向的估计角度.测量参考方向应为正北,逆时针方向.可以辅助确定 ...
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)
A 思路: 贪心,每次要么选两个最大的,要么选三个,因为一个数(除了1)都可以拆成2和3相加,直到所有的数都相同就停止,这时就可以得到答案了; C: 二分+bfs,二分答案,然后bfs找出距离小于等于 ...
- 第10章 同步设备I/O和异步设备I/O(3)_接收I/O请求完成通知的4种方法
10.5 接收I/O请求完成的通知 (1)I/O请求被加入设备驱动程序的队列,当请求完成以后,设备驱动也要负责通知我们I/O请求己经完成. (2)可以用4种方法来接收I/O请求己经完成的通知 技术 特 ...
- [No00001A]天天换图,百词斩到底在折腾啥
- splay总结
以此文纪念人生首次竞赛大选 这里主要讲一讲splay的区间操作,我讲的是指针实现,程序的效率可能比较低,更偏重代码的可读可写性,语言风格不是很优美有效,不喜勿喷 零.初始化结构体 1)这里主要是初始化 ...
- HTML 学习笔记 CSS样式(简介和语法)
CSS概述 CSS指层叠样式表(Cascading Style Sheets) 样式定义如何显示HTML元素 样式通常存储在样式表中 把样式添加到HTML4.0中 是为了解决内容与表现分离的问题 外部 ...
- myeclipse 8.5离线安装python插件
看到网上很多教程扯了一大堆,好麻烦的样子. 1)下载pyhon开发插件,PyDev 2.2.0.zip 我在百度137708820网盘里已分享,链接http://pan.baidu.com/s/1mg ...
- 03Spring_bean的创建和作用域以及生命周期
bean的三种创建方式: 方式一: 使用类构造器实例化对象 <!-- 方式一 使用构造器(无参数)实例化对象 --> <bean id="bean1" cla ...
- OmniPlan文档链接
https://support.omnigroup.com/documentation/omniplan/mac/3.0/zh/introduction/#introduction
- JAVA CDI 学习(1) - @Inject基本用法
CDI(Contexts and Dependency Injection 上下文依赖注入),是JAVA官方提供的依赖注入实现,可用于Dynamic Web Module中,先给3篇老外的文章,写得很 ...