bzoj4518
来源:互联网 发布:seo网站编辑招聘 编辑:程序博客网 时间:2024/06/06 13:15
斜率优化。
把m^2乘进式子里,优化式子。
注意初始化。
#include<cstdio>#include<cstdlib>#include<cstring>long long a[3005];long long f[3005][3005];long long s[3005];long long q[3005];int t; double Y(int j){ return (double)(f[t-1][j]+s[j]*s[j]);}double X(int j){ return (double)s[j]; }double slop(int j1,int j2){ return (Y(j2)-Y(j1))/(X(j2)-X(j1)); }int main(){ int n,m; scanf("%d%d",&n,&m); for (int i=1;i<=n;i++) { scanf("%lld",&a[i]); s[i]=s[i-1]+a[i]; } memset(f,63,sizeof(f)); f[0][0]=0; for (t=1;t<=m;t++) { int l=1,r=1; q[1]=0; for (int i=1;i<=n;i++) { while(l<r&&slop(q[l],q[l+1])<2.0*s[i])l++; int k=q[l]; f[t][i]=f[t-1][k]+(s[i]-s[k])*(s[i]-s[k]); while(l<r&&slop(q[r],q[r-1])>slop(q[r],i))r--; q[++r]=i; } } long long ans=f[m][n]*m-s[n]*s[n]; printf("%lld",ans);}
0 0
- bzoj4518
- BZOJ4518 && SDOi2016 征途
- bzoj4518: [Sdoi2016]征途
- BZOJ4518 [Sdoi2016]征途
- bzoj4518【SDOI2016】征途
- bzoj4518[Sdoi2016] 征途
- bzoj4518: [Sdoi2016]征途
- BZOJ4518: [Sdoi2016]征途
- BZOJ4518: [Sdoi2016]征途
- 【BZOJ4518】征途,斜率优化DP
- bzoj4518 [ SDOI2016 ] --斜率优化DP
- [BZOJ4518][Sdoi2016]征途(斜率优化dp)
- bzoj4518 [Sdoi2016]征途 (斜率优化)
- BZOJ4518 征途 [nlogn做法][斜率优化]
- bzoj4518 [Sdoi2016]征途(斜率优化dp)
- [BZOJ4518][SDOI2016]征途(斜率优化DP)
- BZOJ4518:征途(dp+斜率优化)
- SDOI2016 R1 day2 解题报告(bzoj4516,bzoj4517,bzoj4518)
- linux下安装openoffice
- java多线程(上)
- 汇编程序小练习
- asp.net 怎么用repeater控件做一个日历出来
- 使用JSP显示表格
- bzoj4518
- 【案例】华为桌面云助力中国银行打造高效研发开发平台
- MySQL 免装版配置(服务无法启动)
- JSON.parse()和JSON.stringify()
- 数据结构实验之查找四:二分查找
- 第十四周11
- spark internal - 作业调度
- 实验 图片查看器
- Token