bzoj3437
练一下斜率优化
var s1,s2,f:array[..] of int64;
q,a,b:array[..] of longint;
i,n,h,t,j:longint; function g(j,k:longint):double;
var a,b:double;
begin
a:=f[j]-f[k]-s2[j]+s2[k];
b:=s1[k]-s1[j];
exit(a/b);
end; begin
readln(n);
for i:= to n do
read(a[i]);
for i:= to n do
begin
read(b[i]);
s1[i]:=s1[i-]+b[i];
s2[i]:=s2[i-]+int64(b[i])*int64(n-i+);
end;
h:=;
t:=;
for i:= to n do
begin
while (h<t) and (g(q[h],q[h+])>=n-i+) do inc(h);
j:=q[h];
f[i]:=f[j]+a[i]+s2[i-]-s2[j]-(s1[i-]-s1[j])*int64(n-i+);
while (h<t) and (g(q[t],i)>=g(q[t-],q[t])) do dec(t);
inc(t);
q[t]:=i;
end;
writeln(f[n]);
end.
bzoj3437的更多相关文章
- BZOJ3437 小P的牧场 动态规划 斜率优化
原文链接http://www.cnblogs.com/zhouzhendong/p/8696321.html 题目传送门 - BZOJ3437 题意 给定两个序列$a,b$,现在划分$a$序列. 被划 ...
- bzoj3437 小P的牧场(斜率优化dp)
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2025 Solved: 1110[Submit][Status][Discu ...
- 【BZOJ3437】小P的牧场 斜率优化
[BZOJ3437]小P的牧场 Description 背景 小P是个特么喜欢玩MC的孩纸... 描述 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这 ...
- 【BZOJ3437】小P的牧场(动态规划,斜率优化)
[BZOJ3437]小P的牧场(动态规划,斜率优化) 题面 BZOJ 题解 考虑暴力\(dp\),设\(f[i]\)表示强制在\(i\)处建立控制站的并控制\([1..i]\)的最小代价. 很显然,枚 ...
- bzoj3437小P的牧场
bzoj3437小P的牧场 题意: n个牧场,在每个牧场见控制站的花费为ai,在该处建控制站能控制从此处到左边第一个控制站(或边界)之间的牧场.一个牧场被控制的花费等于它到控制它的控制站之间的牧场数目 ...
- 【BZOJ-3437】小P的牧场 DP + 斜率优化
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 705 Solved: 404[Submit][Status][Discuss ...
- bzoj3437 小P的牧场
斜率优化dp 代码 #include<cstdio> #include<algorithm> using namespace std; typedef long long ll ...
- bzoj3437小P的牧场 斜率优化dp
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1542 Solved: 849[Submit][Status][Discus ...
- 【bzoj3437】小P的牧场
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 947 Solved: 542[Submit][Status][Discuss ...
随机推荐
- css中判断IE版本的语句
css中判断IE版本的语句<!--[if gte IE 6]> Only IE 6/+ <![endif]-->: 1. <!--[if !IE]> 除IE外都可识 ...
- order by跟group by 跟having----------------sum() 求和 avg()求平均 count() 求个数--------------like
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoEAAACdCAIAAABEujUmAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWX ...
- 自己做的demo---c语言的基本语法,过阵子可以重新写一些算法跟数据结构了
//输入a,b,输出a+b /*#include<stdio.h> int main() { int a,b; scanf("%d%d",&a,&b); ...
- [上传下载] C#FileUp文件上传类 (转载)
点击下载 FileUp.zip 主要功能如下 .把上传的文件转换为字节数组 .流转化为字节数组 .上传文件根据FileUpload控件上传 .把Byte流上传到指定目录并保存为文件 看下面代码吧 // ...
- python中文件类的应用
python中对文件.文件夹的操作需要涉及到os模块和shutil模块. 创建文件: 1) os.mknod("test.txt") 创建空文件 2) open("tes ...
- 清楚form表单数据的便捷jQuery之法
有时候可能需要实现这样的效果:注册表单或者地址表单等填写多个记录之后,想要清除重新填写,如果一个个删除非常麻烦,因此这时清除按钮非常必须.接下来为您详细介绍两个自己经历的便捷方法,需要了解的朋友参考下 ...
- linux下安装多个mysql实例(摘自国外:How to create multiple mysql instance in CentOS 6.4 and Red Hat 6.4)
How to create multiple mysql instance in CentOS 6.4 and Red Hat 6.4 from:http://sharadchhetri.com/20 ...
- swift 遍历
最简单的一个遍历数组 for 随便起个名字 in 升级 上面的看不懂的话,这个应该会简单点 import UIKit let interestingNumbers = [ ,,,,,], ,,,,,] ...
- c#yield,IEnumerable,IEnumerator
foreach 在编译成IL后,实际代码如下: 即:foreach实际上是先调用可枚举对象的GetEnumerator方法,得到一个Enumerator对象,然后对Enumerator进行while循 ...
- C# 执行批处理文件(*.bat)的方法代码
代码如下: static void Main(string[] args){ Process proc = null; try { st ...