bzoj3156防御准备
3156: 防御准备
Time Limit: 10 Sec Memory Limit: 512 MB
Submit: 1349 Solved: 605
[Submit][Status][Discuss]
Description
Input
第一行为一个整数N表示战线的总长度。
第二行N个整数,第i个整数表示在位置i放置守卫塔的花费Ai。
Output
共一个整数,表示最小的战线花费值。
Sample Input
10
2 3 1 5 4 5 6 3 1 2
Sample Output
HINT
1<=N<=10^6,1<=Ai<=10^9
/**************************************************************
Problem:
User:
Language: Pascal
Result: Accepted
Time: ms
Memory: kb
****************************************************************/ program j01;
var f,a:array[..]of int64;
n,i,j:longint;
l:array[..]of longint;
h,tail:longint;
pre:int64; function min(a,b:int64):int64;
begin
if a<b then exit(a) else exit(b);
end; function KK(k,j:longint):double;
begin
exit((*(f[j]-f[k])+int64(j)*(j+)-int64(k)*(k+))/(*(j-k)));
end; begin
readln(n);
for i:= to n do
read(a[n-i+]);
a[n+]:=;
h:=;tail:=;l[tail]:=;f[]:=a[];
for i:= to n+ do
begin
while (h<tail)and(KK(l[h],l[h+])<=i) do inc(h);
pre:=l[h];
f[i]:=a[i]+f[pre]+((i-pre)*(i-pre-) div );
while (h<tail)and(KK(l[tail],i)<=KK(l[tail-],l[tail])) do dec(tail);
inc(tail);l[tail]:=i;
end;
writeln(min(f[n],f[n+]));
end.
bzoj3156防御准备的更多相关文章
- BZOJ3156: 防御准备
3156: 防御准备 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 442 Solved: 210[Submit][Status] Descript ...
- bzoj3156防御准备 斜率优化dp
3156: 防御准备 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2279 Solved: 959[Submit][Status][Discuss ...
- BZOJ3156 防御准备 动态规划 斜率优化
原文链接http://www.cnblogs.com/zhouzhendong/p/8688187.html 题目传送门 - BZOJ3156 题意 长为$n$的序列$A$划分,设某一段为$[i,j] ...
- BZOJ3156 防御准备(动态规划+斜率优化)
设f[i]为在i放置守卫塔时1~i的最小花费.那么显然f[i]=min(f[j]+(i-j)*(i-j-1)/2)+a[i]. 显然这是个斜率优化入门题.将不与i.j同时相关的提出,得f[i]=min ...
- BZOJ3156: 防御准备 【斜率优化dp】
3156: 防御准备 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2207 Solved: 933 [Submit][Status][Discu ...
- [BZOJ3156]防御准备(斜率优化DP)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3156 分析: 简单的斜率优化DP
- bzoj3156 防御准备 - 斜率优化
Input 第一行为一个整数N表示战线的总长度. 第二行N个整数,第i个整数表示在位置i放置守卫塔的花费Ai. Output 共一个整数,表示最小的战线花费值. Sample Input 102 3 ...
- 2018.09.29 bzoj3156: 防御准备(斜率优化dp)
传送门 斜率dp经典题目. 然而算斜率的时候并没有注意到下标的平方会爆int于是咕咕*2. 这道题我用了两个数组来表示状态. f[i]f[i]f[i]表示最后i个位置倒数第i个放木偶的最优值. g[i ...
- BZOJ3156 防御准备 斜率优化dp
Description Input 第一行为一个整数N表示战线的总长度. 第二行N个整数,第i个整数表示在位置i放置守卫塔的花费Ai. Output 共一个整数,表示最小的战线花费值. Sampl ...
随机推荐
- ngx-push-stream模块源码学习(四)——订阅
一.概述 push stream模块允许三种模式的订阅者: longpolling:每收到服务端响应数据即断开连接然后迅速重连,连接耗时可以忽略 stream:与服务端保持长连接,持续不断的请求-&g ...
- C#开发 “因为某项目未能生成,所以无法发布”
今天把笔记本电脑中开发的项目复制到台式机上,启用调试都正常.准备发布的时候却提示“因为某项目未能生成,所以无法发布”的错误. 从网上查找资料可以通过以下方法解决: 在项目属性的签名标签中,创建测试证书 ...
- CF 327E(Axis Walking-状态压缩Dp-lowbit的使用)
E. Axis Walking time limit per test 3 seconds memory limit per test 512 megabytes input standard inp ...
- Bitmap的一个简单实现
一.Bitmap简介 Bitmap是一种常用的数据结构,其实就是一个连续的数组,主要是用于映射关系,如映射整数,一位代表一个数,即这里假设Bitmap有100Bytes * 8 这么多的位,那么这里可 ...
- 绩效考核指标KPI 听课笔记
以前一直听人在说KPI,今天终于明白KPI是什么意思了!
- redis beforesleep
本来想把redis main函数附带都读完再写笔记,但实在太大了,所以现在决定一部分一部分地记录. eventloop中在每次进入循环时都会调用beforeSleep回调(因为processevent ...
- Linux进程分配内存的两种方式--brk() 和mmap()
如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...
- 【Coursera - machine learning】 Linear regression with one variable-quiz
Question 1 Consider the problem of predicting how well a student does in her second year of college/ ...
- Angularjs实现简单分页
一个后台中总需要一款分页,那我为了自己方便使用,实现如下效果 我把这个组件命名为tm.pagination,原因是因为起名真的太难起了.而且我网名也叫天名, TM就这样了吧.github地址https ...
- PHP5.6通过CURL上传图片@符无效的兼容问题
今天本来想试试一个图片云的API,于是本地做了个上传图片的测试,结果灰常郁闷的发现以前一直用的好好的CURL上传图片居然死活不起作用,本来几分钟搞定的事情,结果折腾了大半天才终于找到原因,居然是兼容性 ...