hdu3507 斜率优化dp
来源:互联网 发布:windows 域用户 编辑:程序博客网 时间:2024/05/16 09:48
//直接比较斜率容易出问题,因为是浮点型,wa了很多次#include<iostream>#include<cstdio>#include<cmath>#define N 500010using namespace std;int a[N],s[N],dp[N],id[N];int n,m;int up(int i,int j){ return dp[i]-dp[j]+s[i]*s[i]-s[j]*s[j];}int down(int i,int j){ return 2*(s[i]-s[j]);}int get(int x,int i){ return dp[x]+(s[i]-s[x])*(s[i]-s[x])+m;}int main(){ //freopen("1.in","r",stdin); while(scanf("%d%d",&n,&m)!=EOF) { s[0]=0; for(int i=1;i<=n;i++){scanf("%d",&a[i]);s[i]=s[i-1]+a[i];} int head=0,tail=1;id[0]=0;dp[0]=0; for(int i=1;i<=n;i++) { while(head<tail-1&&up(id[head+1],id[head])<=s[i]*down(id[head+1],id[head]))head++; dp[i]=get(id[head],i); while(head<tail-1&&up(i,id[tail-1])*down(id[tail-1],id[tail-2])<=up(id[tail-1],id[tail-2])*down(i,id[tail-1]))tail--; id[tail++]=i; } printf("%d\n",dp[n]); } return 0;}
0 0
- hdu3507斜率优化dp
- hdu3507 斜率优化dp
- 斜率优化DP(hdu3507)
- 斜率优化dp:HDU3507
- HDU3507(dp + 斜率优化dp)
- hdu3507 斜率优化dp入门
- hdu3507之斜率优化DP入门
- HDU3507--Print Article(斜率优化DP)
- [HDU3507]Print Article(斜率优化dp)
- hdu3507 Print Article(斜率优化dp)
- hdu3507 Print Article(斜率优化dp)
- hdu3507 Print Article DP+斜率优化
- 【HDU3507】Print Article-DP斜率优化入门
- [hdu3507] Print Article DP斜率优化入门
- 【HDU3507】【斜率优化DP】Print Article题解
- #HDU3507#Print Article(DP+斜率优化)
- [hdu3507] Print Article(斜率优化dp)
- HDU3507 Print Article 【斜率优化DP】
- Google Maps Android API v2开发----环境搭建
- 位运算
- iOS删除文件下的指定类型或所有文件
- svm入门
- UVA10306 - e-Coins(二维完全背包)
- hdu3507 斜率优化dp
- CBCentralManager学习笔记
- Android中ImageView、ImageButton、Button之间的区别
- Linux(suse)防火墙修改
- css学习
- SQL 2008 数据库迁移
- android 判断是否在桌面-桌面进程是否在应用栈顶
- hadoop单节点安装及eclipse调用
- iOS下QQ研究