bzoj4518
好久没写题解了……
一开始脑抽,还以为平均数会随着划分的改变而改变(无可救药……)
这题还是比较水的,展开方差的式子分成m部分每部分路程为xi,平均数p
方差=∑(xi-p)/m=∑(xi^2-2xi*p+p^2)/m=∑xi^2/m-2*S*p/m+p^2=∑xi^2/m-p^2
所以只要求∑xi^2即可,不难想到f[i,j]=min(f[k,j-1]+sqr(s[i]-s[k])
裸的斜率优化即可
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<stdlib.h> using namespace std;
int s[],g[],f[],q[];
int n,m; int sqr(int x)
{
return x*x;
}
double k(int j,int k)
{
return (sqr(s[k])-sqr(s[j])+g[k]-g[j])/(s[k]-s[j]);
} int main()
{
scanf("%d%d",&n,&m);
for (int i=; i<=n; i++)
{
scanf("%d",&s[i]);
s[i]+=s[i-];
g[i]=sqr(s[i]);
}
for (int j=; j<m; j++)
{
int h=,r=; q[]=j;
for (int i=j+; i<=n; i++)
{
while (h<r&&k(q[h],q[h+])<*s[i]) h++;
f[i]=g[q[h]]+sqr(s[i]-s[q[h]]);
while (h<r&&k(q[r-],q[r])>k(q[r],i)) r--;
q[++r]=i;
}
memcpy(g,f,sizeof(g));
memset(f,,sizeof());
}
printf("%d",m*f[n]-sqr(s[n]));
return ;
}
bzoj4518的更多相关文章
- 【bzoj4518】 Sdoi2016—征途
		
http://www.lydsy.com/JudgeOnline/problem.php?id=4518 (题目链接) 题意 给出n个连续的整数,求将它们分成m段,求最小方差*m^2. Solutio ...
 - 【BZOJ4518】[Sdoi2016]征途 斜率优化
		
[BZOJ4518][Sdoi2016]征途 Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除 ...
 - BZOJ4518 Sdoi2016 征途 【斜率优化DP】 *
		
BZOJ4518 Sdoi2016 征途 Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m ...
 - bzoj-4518 4518: [Sdoi2016]征途(斜率优化dp)
		
题目链接: 4518: [Sdoi2016]征途 Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地 ...
 - 【BZOJ-4518】征途      DP + 斜率优化
		
4518: [Sdoi2016]征途 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 230 Solved: 156[Submit][Status][ ...
 - BZOJ4518: [Sdoi2016]征途
		
Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜 ...
 - bzoj4518: [Sdoi2016]征途--斜率DP
		
题目大意:把一个数列分成m段,计算每段的和sum,求所有的sum的方差,使其最小. 由方差*m可以化简得ans=m*sigma(ki^2)-sum[n]^2 很容易得出f[i][j]=min{f[i- ...
 - SDOI2016 R1 解题报告 bzoj4513~bzoj4518
		
储能表 将n, m分解为二进制,考虑一个log(n)层的trie树,n会在这颗trie树上走出了一个路径,因为 行数 $ \le n$,所以在n的二进制路径上,每次往1走的时候,与m计算贡献,m同样处 ...
 - [BZOJ4518]征途
		
4518: [Sdoi2016]征途 Time Limit: 10 Sec Memory Limit: 256 MB Description Pine开始了从S地到T地的征途. 从S地到T地的路可以 ...
 
随机推荐
- Python日志输出——logging模块
			
Python日志输出——logging模块 标签: loggingpythonimportmodulelog4j 2012-03-06 00:18 31605人阅读 评论(8) 收藏 举报 分类: P ...
 - LINUX下的时间与时区的设置
			
在RHEL下,如果只装英文版系统,设置好时区以后(上海时间,UTC) 在命令行下用date命令查看,总是与实际的北京时间差8小时,其实硬件时间都是准确的.会带来视觉不便. 今天下决心解决此问题,不过也 ...
 - HBase Java简单示例--转载
			
Hbase采用Java实现,原生客户端也是Java实现,其他语言需要通过thritf接口服务间接访问Hbase的数据. Hbase作为大数据存储数据库,其写能力非常强,加上Hbase本身就脱胎于Had ...
 - Codeforces 475D CGCDSSQ(分治)
			
题意:给你一个序列a[i],对于每个询问xi,求出有多少个(l,r)对使得gcd(al,al+1...ar)=xi. 表面上是询问,其实只要处理出每个可能的gcd有多少个就好了,当左端点固定的时候,随 ...
 - JavaWeb-JDK下载安装
			
JDK官方下载地址:http://www.oracle.com/index.html JDK下载: 64位的下64的 JDK安装:(这是32位的) JDK部署测试:(配置环境变量) JAVA_HOME ...
 - iOS模型以及使用
			
个人习惯,也可以不这样写 创建模型基类: #import <Foundation/Foundation.h> @interface WJBaseModel : NSObject //将字典 ...
 - 加载gif动态图的三种方式
			
准备:本地图片资源,GifView
 - 控制台应用程序的Main方法
			
总结一下Main方法规则: 1.Main 方法名大小写有规范. 2.Main 方法返回类型只有 void.int两种返回类型. 3.Main 方法的参数可以是string[] args,也可以为空,只 ...
 - ***iOS开发中@selector的理解与应用
			
@selector 是什么? 1一种类型 SEL2代表你要发送的消息(方法), 跟字符串有点像, 也可以互转.: NSSelectorFromString() / NSSelectorFromStri ...
 - ****RESTful API 设计最佳实践(APP后端API设计参考典范)
			
http://blog.jobbole.com/41233/ 背景 目前互联网上充斥着大量的关于RESTful API(为方便,下文中“RESTful API ”简写为“API”)如何设计的文章,然而 ...