uestc 594 我要长高 单调队列优化
来源:互联网 发布:翻墙 mac 免费 编辑:程序博客网 时间:2024/04/30 13:18
/* ***********************************************Author :xryzEmail :xiang578@foxmail.comBlog :htttp://www.xiang578.topCreated Time :10-22 20:22:55File Name :uestc594.cpp************************************************ *///#include <stdio.h>//#include <string.h>//#include <iostream>//#include <algorithm>//#include <vector>//#include <queue>//#include <set>//#include <map>//#include <string>//#include <math.h>//#include <stdlib.h>//#include <time.h>#include <bits/stdc++.h>using namespace std;const int inf=0xfffffff;int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int dp[2][105],n,c,i,j,k,x,ans,cur,now; int q[100+5],ph,pt; while(~scanf("%d%d",&n,&c)) { scanf("%d",&x); cur=0; for(i=0;i<x;i++) dp[cur][i]=inf; for(i=x;i<=100;i++) dp[cur][i]=(i-x)*(i-x); for(i=1;i<n;i++) { scanf("%d",&x); cur=1-cur; //前一个比后一个矮 ph=pt=0; for(j=0;j<=100;j++) { now=dp[1-cur][j]-c*j; while(ph<pt&&q[pt-1]>now) pt--; q[pt++]=now; if(j<x) dp[cur][j]=inf; else dp[cur][j]=q[ph]+(x-j)*(x-j)+c*j; } //前一个比后一个高 ph=pt=0; for(j=100;j>=0;j--) { now=dp[1-cur][j]+c*j; while(ph<pt&&q[pt-1]>now) pt--; q[pt++]=now; if(j>=x) dp[cur][j]=min(dp[cur][j],q[ph]+(x-j)*(x-j)-c*j); } } ans=inf; for(i=0;i<=100;i++) ans=min(dp[cur][i],ans); printf("%d\n",ans); } return 0;}
0 0
- UESTC 594 我要长高 单调队列优化DP
- uestc 594 我要长高 单调队列优化
- UESTC 594 我要长高 (单调队列优化DP)
- UESTC - 594 我要长高 单调队列优化DP
- UESTC-594 我要长高(动态规划+单调队列优化)
- 用单调队列优化的题目 我要长高
- CDOJ 我要长高 (单调队列优化DP)
- UESTC 我要长高
- 【DP UESTC 594】我要长高
- UESTC 1685 我要长高
- 我要长高 UESTC CDOJ
- uestc oj 1685 我要长高
- 我要长高
- 2016 UESTC Training for Dynamic Programming J - 柱爷抢银行II dp单调队列优化
- 单调队列优化DP
- 单调队列优化DP
- 单调队列优化专题
- poj1821 单调队列优化
- header(location) 后面是否需要加exit?
- poj 1753
- 编程注意点
- ios简单富文本demolabel
- 让ie6,7,8支持css3属性
- uestc 594 我要长高 单调队列优化
- c语言的结构体
- 九度OJ 1089:数字反转 (数字反转)
- log4j中Logger.getLogger为什么一定要加载一个类
- Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
- struts2所有jar下载地址
- HDU 1029 Ignatius and the Princess IV
- 关于UINavigationContrller官方文档翻译
- java 中的try—catch异常处理