superoj725 工作分配
来源:互联网 发布:pass软件使用手册 编辑:程序博客网 时间:2024/06/05 11:08
DP斜率优化
一行代码一行泪啊
不等式正负。。。
/* WA N次原因: 1 不等式移向是没注意正负(!!!!!负数变号啊) 2 除法除数不能为0。。。*/
/* WA N次原因: 1 不等式移向是没注意正负(!!!!!负数变号啊) 2 除法除数不能为0。。。*/#include<cstring>#include<cmath>#include<algorithm>#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime> #define LLMAX (long long)1E18using namespace std;long long a[1000011];long long dp[1000011];long long n,m,c;long long x[1000011];long long y[1000011];long long p[1000011];long long read(){long long k=0,f=1;char c=getchar();while(c>'9'||c<'0') {if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9') {k=k*10+(c-'0'); c=getchar();}return k*f;}long double xl(long long y1,long long y2,long long x1,long long x2){long double xx=x1-x2;long double yy=y1-y2;return (yy*1.0)/(xx*1.0);}int main(){ // freopen("lx.in","r",stdin); // freopen("lx.out","w",stdout); long long i,j,k; n=read(); m=read(); c=read(); for(i=1;i<=n;i++) dp[i]=LLMAX; for(i=1;i<=n;i++) { a[i]=read(); } sort(a+1,a+1+n);// for(i=1;i<=n;i++) // {// x[i-1]=a[i]<<1;// y[i-1]=a[i]*a[i]; // } long long s,t; long long head=1; long long tail=1; dp[0]=0; for(i=m;i<=2*m-1;i++) dp[i]=c+(a[i]-a[1])*(a[i]-a[1]); p[1]=0; y[0]=dp[0]+a[1]*a[1]; for(i=2*m;i<=n;i++) { t=i-m; y[t]=dp[t]+a[t+1]*a[t+1]; x[t]=a[t+1]<<1; while(tail-head>0 && ((y[p[tail]]-y[p[tail-1]])*(x[t]-x[p[tail]])>=(y[t]-y[p[tail]])*(x[p[tail]]-x[p[tail-1]]))) tail--; tail++; p[tail]=t; while(tail-head>0 && (y[p[head+1]]-y[p[head]])<=a[i]*(x[p[head+1]]-x[p[head]])) head++; dp[i]=c+dp[p[head]]+(a[i]-a[p[head]+1])*(a[i]-a[p[head]+1]); } cout<<dp[n]; return 0;}
0 0
- superoj725 工作分配
- 工作分配
- 工作分配
- 工作分配
- 工作分配
- 工作分配
- 工作分配
- 工作分配问题
- SAP工作分配
- 工作分配问题
- 项目经理如何分配工作
- 回溯法-工作分配
- 17085 工作分配问题
- 工作分配问题
- 工作分配问题
- Luo 1233 工作分配
- 【9503】工作分配问题
- 工作分配问题
- java记——循环 求一个数的所有质因数
- 4-1 简单输出整数 (10分)
- coreseek(sphinx)linux安装以及配置。。
- 第七周--停车场模拟
- jqzoom源码解读-1
- superoj725 工作分配
- 国际物流不能只关注价格
- Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny
- dialog样式的activity,可全屏、可任意大小的dialog实现
- IOS-委托机制
- 访问权限public,protected,private,default
- Kinect环境搭建
- 敏捷开发
- 网页图片延迟加载LazyLoad.js使用方法介绍和实例