UESTC_我要长高 CDOJ 594
韩父有N个儿子,分别是韩一,韩二…韩N。由于韩家演技功底深厚,加上他们间的密切配合,演出获得了巨大成功,票房甚至高达2000万。舟子是名很有威望的公知,可是他表面上两袖清风实则内心阴暗,看到韩家红红火火,嫉妒心遂起,便发微薄调侃韩二们站成一列时身高参差不齐。由于舟子的影响力,随口一句便会造成韩家的巨大损失,具体亏损是这样计算的,韩一,韩二…韩N站成一排,损失即为C×(韩i与韩i+1的高度差(1≤i<N))之和,搞不好连女儿都赔了.韩父苦苦思索,决定给韩子们内增高(注意韩子们变矮是不科学的只能增高或什么也不做),增高1cm是很容易的,可是增高10cm花费就很大了,对任意韩i,增高Hcm的花费是H2.请你帮助韩父让韩家损失最小。
Input
有若干组数据,一直处理到文件结束。
每组数据第一行为两个整数:韩子数量N(1≤N≤50000)和舟子系数C(1≤C≤100)
接下来N行分别是韩i的高度(1≤hi≤100)。
Output
对每组测试数据用一行输出韩家的最小损失。
Sample input and output
| Sample Input | Sample Output |
|---|---|
5 2 |
15 |
解题报告
用单调队列来优化(正解)...空间复杂度也可以优化到O(100*2)...好吧我又没有优化
当时先用的线段树来O(log)得到最优解,结果本机测试跑极限数据1.5s+才出。。。果断放弃(常数太大)
之后采用rmq...交了一发TLE,彻底断了我的念头...
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
typedef long long ll;
using namespace std;
const int maxn = 5e4 + ;
int n,c,h[maxn];
ll q[];
ll f[maxn][];
ll MAX; int main(int argc,char *argv[])
{
MAX = << ;
MAX *= MAX;
while(scanf("%d%d",&n,&c) != EOF)
{
for(int i = ; i <= n ; ++ i)
scanf("%d",h+i);
for(int i = ; i <= n ; ++ i)
for(int j = ; j <= ; ++ j)
f[i][j] = MAX;
for(int i = h[] ; i <= ; ++ i)
f[][i] = (i-h[])*(i-h[]);
int front , rear ;
for(int i = ; i <= n ; ++ i)
{
front = rear = ;
for(int j = h[i-] ; j <= ; ++ j)
{
while(front < rear && f[i-][q[rear-]]-c*q[rear-] > f[i-][j]-c*j)
rear--;
q[rear++] = j;
}
for(int j = h[i] ; j <= ; ++ j)
if (j >= q[front])
f[i][j] = f[i-][q[front]] - c*q[front] + c*j + (j-h[i])*(j-h[i]);
front = rear = ;
for(int j = h[i-] ; j <= ; ++ j)
{
while(front < rear && f[i-][q[rear-]]+c*q[rear-] > f[i-][j]+c*j )
rear--;
q[rear++] = j;
}
for(int j = h[i] ; j <= ; ++ j)
{
while(j > q[front] && front < rear)
front++;
if (q[front] >= j)
f[i][j] = min(f[i][j],f[i-][q[front]] + c*q[front] - c*j + (j-h[i])*(j-h[i]));
}
}
ll ans = f[n][h[n]];
for(int j = h[n] ; j <= ; ++ j)
ans = min(ans,f[n][j]);
printf("%lld\n",ans);
}
return ;
}
UESTC_我要长高 CDOJ 594的更多相关文章
- 一看就懂的MySQL的聚簇索引,以及聚簇索引是如何长高的
这一篇笔记我们简述一下 MySQL的B+Tree索引到底是咋回事? 聚簇索引索引到底是如何长高的. 一点一点看,其实蛮好理解的. 如果你看过了我之前的笔记,你肯定知道了MySQL进行CRUD是在内存中 ...
- 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 ...
- UESTC - 594 我要长高
他们oj挂掉啦, 我先保存一下代码... 直接dp复杂度, n * 100 * 100, 我们可以将前一个人的信息丢进单调队列中去,可以优化成n * 100; #include<bits/std ...
- UESTC_方老师分身 I CDOJ 914
方老师分身 I Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- UESTC_方老师买表 CDOJ 885
老师买表 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Stat ...
- 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 ...
随机推荐
- 修改和获取web.config或app.config文件appSettings配置节中的Add里的value属性 函数
1: /// <summary> 2: /// 修改web.config或app.config文件appSettings配置节中的Add里的value属性 3: /// </summ ...
- linux中的文件结构
linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的 ...
- WifiDog and OpenWrt
$Id$ 2 3 OpenWRT specific README 4 ======================= 5 6 So, you want to run wifidog on on ...
- HDU 1576 A/B(数论)
题目:求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1).数据给出n和b 推导过程 A/B = K K = 9973* ...
- 腾讯TT浏览器应用程序发生异常(0xc0000409) 位置为0x027a1f7f 的解决办法
2013年8月26日下午,腾讯TT浏览器 4.8版1000 出现“应用程序发生异常(0xc0000409) 位置为0x027a1f7f ”的错误,导致浏览器自动关闭. 无论重新卸载安装还是 清理系统 ...
- STS(Spring Tool Suite)使用前准备
sts 的基础框架拿的eclipse的,你可以理解为eclipse + spring插件的高级升华版.在使用上可以很大限度的参考eclipse的操作. 首先,调整字体. 中文很麻烦的,因为编码问题.习 ...
- [Hapi.js] Logging with good and good-console
hapi doesn't ship with logging support baked in. Luckily, hapi's rich plugin ecosystem includes ever ...
- [Regular Expressions] Find the Start and End of Whole Words
Regular Expression Word Boundaries allow to perform "whole word only" searches within our ...
- DOM生成&解析
开篇注意,由于解析有可能有大文件非常耗时,建议另开一个线程解析也可以不开具体视情况而定 DOM生成 1.拿到Document的工厂实例化 DocumentBuilderFactory df = ...
- UVA 11754 Code Feat (枚举,中国剩余定理)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud C Code Feat The government hackers at C ...