UESTC - 594 我要长高
他们oj挂掉啦, 我先保存一下代码。。。
直接dp复杂度, n * 100 * 100, 我们可以将前一个人的信息丢进单调队列中去,可以优化成n * 100;
#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int,int>
#define piii pair<int, pair<int,int> > using namespace std; const int N = 5e4 + ;
const int M = + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ;
const double eps = 1e-; int n, c, head1, head2, rear1, rear2;
int sk1[N], sk2[N], a[N], dp[N][]; void init() {
for(int i = ; i <= n; i++) {
for(int j = ; j <= ; j++) {
dp[i][j] = inf;
}
}
head1 = head2 = ;
rear1 = rear2 = ;
}
int main() {
while(scanf("%d%d", &n, &c) != EOF) { init();
for(int i = ; i <= n; i++) {
scanf("%d", &a[i]);
} for(int j = a[]; j <= ; j++) {
dp[][j] = (j - a[]) * (j - a[]);
} for(int i = ; i <= n; i++) { rear1 = rear2 = ;
head1 = head2 = ; for(int j = ; j <= ; j++) { while(head1 < rear1 && dp[i - ][j] + c * j < dp[i - ][sk1[rear1 - ]] + c * sk1[rear1 - ]) rear1--;
sk1[rear1++] = j;
} for(int j = ; j >= ; j--) { while(head2 < rear2 && dp[i - ][j] - c * j < dp[i - ][sk2[rear2 - ]] - c * sk2[rear2 - ]) rear2--;
sk2[rear2++] = j;
} for(int j = a[i]; j <= ; j++) {
while(head1 < rear1 && sk1[head1] < j) head1++;
if(head1 < rear1) dp[i][j] = dp[i - ][sk1[head1]] + c * sk1[head1] + (j - a[i]) * (j - a[i]) - c * j;
} for(int j = ; j >= a[i]; j--) {
while(head2 < rear2 && sk2[head2] > j) head2++;
if(head2 < rear2) dp[i][j] = min(dp[i][j], dp[i - ][sk2[head2]] - c * sk2[head2] + (j - a[i]) * (j - a[i]) + c * j);
}
} int ans = inf;
for(int j = a[n]; j <= ; j++) {
ans = min(ans, dp[n][j]);
}
printf("%d\n", ans);
}
return ;
}
/*
*/
UESTC - 594 我要长高的更多相关文章
- UESTC 594 我要长高 - 单调性优化
韩父有N个儿子,分别是韩一,韩二…韩N.由于韩家演技功底深厚,加上他们间的密切配合,演出获得了巨大成功,票房甚至高达2000万.舟子是名很有威望的公知,可是他表面上两袖清风实则内心阴暗,看到韩家红红火 ...
- 【单调队列优化dp】uestc 594 我要长高
http://acm.uestc.edu.cn/#/problem/show/594 [AC] #include<bits/stdc++.h> using namespace std; t ...
- 一看就懂的MySQL的聚簇索引,以及聚簇索引是如何长高的
这一篇笔记我们简述一下 MySQL的B+Tree索引到底是咋回事? 聚簇索引索引到底是如何长高的. 一点一点看,其实蛮好理解的. 如果你看过了我之前的笔记,你肯定知道了MySQL进行CRUD是在内存中 ...
- UESTC_我要长高 CDOJ 594
韩父有N个儿子,分别是韩一,韩二…韩N.由于韩家演技功底深厚,加上他们间的密切配合,演出获得了巨大成功,票房甚至高达2000万.舟子是名很有威望的公知,可是他表面上两袖清风实则内心阴暗,看到韩家红红火 ...
- 机器时代的中国字幕(Automata.2014.720p.WEB-DL.DD5.1.H264-RARBG.srt)
看字幕.再也看不下去.自己翻译的位 评价的探讨 1 00:01:58,452 --> 00:02:02,088 人工增雨 期限为32分钟16第二 2 00:02:02,089 --> 00 ...
- PHP-生成缩略图和添加水印图-学习笔记
1.开始 在网站上传图片过程,经常用到缩略图功能.这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图. 2.如何生成缩略图 生成缩略图,关键的是如何计算缩放比率. 这里,我根据 ...
- 一个前端所需具备的PS能力
前端网页设计+静态实现案例 放一个2天半内给某公司完成的(设计 + 静态实现)的案例吧,静态阴影用CSS3实现的http://www.cnblogs.com/MuYunyun/p/5693615.ht ...
- 百度编辑器UEditor与UEditor 公式插件完整Demo
1.下载UEditor(我的是.net项目) 2.下载UEditor公式插件 3.新建解决方案和项目 4.在浏览器中预览index.html页面 结果: 5.index.html源码 <!DOC ...
- .net core 源码解析-web app是如何启动并接收处理请求
最近.net core 1.1也发布了,蹒跚学步的小孩又长高了一些,园子里大家也都非常积极的在学习,闲来无事,扒拔源码,涨涨见识. 先来见识一下web站点是如何启动的,如何接受请求,.net core ...
随机推荐
- 科学计算三维可视化---Traits(Event和button属性)
Event和button属性 是两个专门用于处理事件的change属性 Event属性和其他Trait属性不一样 Button属性是由Event属性继承而来的 Event监听 from traits. ...
- 科学计算三维可视化---Traits属性的监听
Traits属性的监听 HasTraits对象所有Traits属性都自动支持监听功能,当每个Traits属性发生变化时,HasTraits对象会通知监听此属性的函数 两种监听模式 静态监听 动态监听 ...
- 介绍——基于类的视图(class-based view)
刚开始的时候,django只有基于函数的视图(Function-based views).为了解决开发视图中繁杂的重复代码,基于函数的通用视图( Class-based generic views) ...
- MySQL报错】ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 39.
之前在centos6.4系统安装的是自带的mysql 5.1版本,后来升级到了5.6版本,执行以下命令报错 在网上查找原因说说因为升级不当导致,执行以下命令即可正常执行命令 mysql_upgrade ...
- Mysql 插入时间时报错Incorrect datetime value: '' for column 'createtime'
在网上找了很多方法总结如下: 1.MySQL驱动版本的问题.这种一般是在mYSQL版本更新了之后才会报错.解决方法在jdbc里添加“&useOldAliasMetadataBehavior=t ...
- 洛谷P1456 Monkey King
https://www.luogu.org/problemnew/show/1456 #include<cstdio> #include<iostream> #include& ...
- 洛谷 P3382 【模板】三分法
https://www.luogu.org/problem/show?pid=3382 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减. ...
- MySQL数据库远程连接很慢的解决方案
在开发机器上链接mysql数据库很慢,但是在数据库服务器上直接链接数据库很快.猜测应该是远程链接解析的问题,在查询MySQL相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在MySQL ...
- LintCode 35: Reverse Linked List
LintCode 35: Reverse Linked List 题目描述 翻转一个链表. 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1 ...
- Linux的基础优化-2
1.启动网卡 ifup eth0 2.SSH链接 ifconfig 查看IP后SSH终端连接3.更新源 最小化安装是没有wget工具的,必须先安装再修改源 yum install wget 备份原系统 ...