博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj4518
阅读量:5794 次
发布时间:2019-06-18

本文共 1009 字,大约阅读时间需要 3 分钟。

好久没写题解了……

一开始脑抽,还以为平均数会随着划分的改变而改变(无可救药……)

这题还是比较水的,展开方差的式子分成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])

裸的斜率优化即可

1 #include
2 #include
3 #include
4 #include
5 #include
6 7 using namespace std; 8 int s[3010],g[3010],f[3010],q[3010]; 9 int n,m;10 11 int sqr(int x)12 {13 return x*x;14 }15 double k(int j,int k)16 {17 return (sqr(s[k])-sqr(s[j])+g[k]-g[j])/(s[k]-s[j]);18 }19 20 int main()21 {22 scanf("%d%d",&n,&m);23 for (int i=1; i<=n; i++) 24 {25 scanf("%d",&s[i]);26 s[i]+=s[i-1];27 g[i]=sqr(s[i]);28 }29 for (int j=1; j
k(q[r],i)) r--;37 q[++r]=i;38 } 39 memcpy(g,f,sizeof(g));40 memset(f,0,sizeof(0));41 }42 printf("%d",m*f[n]-sqr(s[n]));43 return 0;44 }45 46
View Code

 

转载于:https://www.cnblogs.com/phile/p/5645054.html

你可能感兴趣的文章
【ES6】数值的扩展
查看>>
远程桌面开启(命名空间)
查看>>
Django基础——模板层(template) (Day67)
查看>>
Mongoose的分页功能
查看>>
12 13 14 15
查看>>
Compare Version Numbers
查看>>
微信小程序多列选择器
查看>>
python开发轻量级爬虫
查看>>
Codeforces Round #514 (Div. 2) C. Sequence Transformation
查看>>
Python之Ftp作业(断点续传未完成)
查看>>
云计算不是万能 应用于电网存在危险性
查看>>
微软4月14日起不再为所有XP用户提供安全补丁
查看>>
洞察移动互联网的未来,互联网营销
查看>>
一起谈.NET技术,.Net4.0 Parallel编程(二)Data Parallelism 中
查看>>
一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统
查看>>
&和&&的区别
查看>>
好好加油~
查看>>
关于文件写入的原子性讨论
查看>>
Delphi新注释
查看>>
直接把软件界面做成游戏界面。CEGUI 专用游戏界面开发库。
查看>>