bzoj3437 小P的牧场
斜率优化dp
代码
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = ;
int n,i,j,l,r,q[N];
ll f[N],v[N],s[N],a[N];
ll calc(int x,int i)
{
return f[x]+a[i]+v[x+]-v[i]-(n-i)*(s[x+]-s[i]);
}
double A(int x,int y)
{
return f[x]+v[x+]-f[y]-v[y+];
}
double B(int x,int y)
{
return s[x+]-s[y+];
}
int main()
{
scanf("%d",&n);
for (i=;i<=n;i++)
scanf("%lld",&a[i]);
for (i=;i<=n;i++)
scanf("%lld",&s[i]);
for (j=n;j>=;j--)
{
v[j]=v[j+]+s[j]*(n-j);
s[j]+=s[j+];
}
l=;r=;
for (i=;i<=n;i++)
{
while ((l<r)&&(A(q[l],q[l+])>=B(q[l],q[l+])*(n-i))) l++;
f[i]=calc(q[l],i);
while ((l<r)&&(A(q[r],i)*B(q[r-],q[r])>A(q[r-],q[r])*B(q[r],i))) r--;
r++;q[r]=i;
}
printf("%lld\n",f[n]);
}
//f[x]+v[x+1]-f[y]-v[y+1]>(s[x+1]-s[y+1])*(n-i)
//A(y,z)/B(y,z)>A(x,y)/B(x,y)
bzoj3437 小P的牧场的更多相关文章
- bzoj3437小P的牧场
bzoj3437小P的牧场 题意: n个牧场,在每个牧场见控制站的花费为ai,在该处建控制站能控制从此处到左边第一个控制站(或边界)之间的牧场.一个牧场被控制的花费等于它到控制它的控制站之间的牧场数目 ...
- bzoj3437 小P的牧场(斜率优化dp)
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2025 Solved: 1110[Submit][Status][Discu ...
- bzoj3437小P的牧场 斜率优化dp
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1542 Solved: 849[Submit][Status][Discus ...
- BZOJ3437 小P的牧场 【斜率优化dp】
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1502 Solved: 836 [Submit][Status][Disc ...
- BZOJ3437:小P的牧场(斜率优化DP)
Description 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制 ...
- BZOJ3437 小P的牧场 动态规划 斜率优化
原文链接http://www.cnblogs.com/zhouzhendong/p/8696321.html 题目传送门 - BZOJ3437 题意 给定两个序列$a,b$,现在划分$a$序列. 被划 ...
- 【BZOJ3437】小P的牧场 斜率优化
[BZOJ3437]小P的牧场 Description 背景 小P是个特么喜欢玩MC的孩纸... 描述 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这 ...
- 【BZOJ3437】小P的牧场(动态规划,斜率优化)
[BZOJ3437]小P的牧场(动态规划,斜率优化) 题面 BZOJ 题解 考虑暴力\(dp\),设\(f[i]\)表示强制在\(i\)处建立控制站的并控制\([1..i]\)的最小代价. 很显然,枚 ...
- 【BZOJ-3437】小P的牧场 DP + 斜率优化
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 705 Solved: 404[Submit][Status][Discuss ...
随机推荐
- 超简单的处理JSON格式和JSON数组格式的String
现在网站上有不少处理JSON格式的工具类,但是我找了一天,发现大都是需要编写相应对象类来进行处理,比较麻烦,比如:Gson,json-lib.Gson,json-lib这些处理那些接口之类的参数名字和 ...
- Java高级之内存模型分析
博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 下文是博主感悟,请带着怀疑性的态度阅读! 需要了解基本变量所占 ...
- 15 款最好的 C/C++ 编译器和集成开发环境
我们有很多编程语言来进行 web 开发,比如 Java,.Net,PHP,Ruby,Perl,Python 等等.今天我们主要讨论的是两大古老而又流行的语言: C 和 C++ ,它们有着许多卓越的特性 ...
- 1011 最大公约数GCD
1011 最大公约数GCD 基准时间限制:1 秒 空间限制:131072 KB 输入2个正整数A,B,求A与B的最大公约数. Input 2个数A,B,中间用空格隔开.(1<= A,B < ...
- [LeetCode]题解(python):101 Symmetric tree
题目来源 https://leetcode.com/problems/symmetric-tree/ Given a binary tree, check whether it is a mirror ...
- Segments---poj3304(判断直线与线段的位置关系)
题目链接:http://poj.org/problem?id=3304 题意:给你n个线段,求是否有一条直线与所有的线段都相交,有Yes,没有No; 枚举所有的顶点作为直线的两点,然后判断这条直线是否 ...
- Selenium2学习-006-WebUI自动化实战实例-004-解决 Chrome 浏览器证书提示:--ignore-certificate-errors
此文主要讲述 Java 运行 Selenium 脚本时,如何消除 Chrome 浏览器启动后显示的证书错误报警提示,附带 Chrome 参数使浏览器最大化的参数. 希望能对初学 Selenium2 W ...
- 添加gogs服务后 web丢失样式问题
暂时的解决办法
- Java Map操作
Map:键必须是唯一 同步方法:Map m = Collections.synchronizedMap(new TreeMap(...)); Hashtable:基于散列表的实现 允许空键空值 线程安 ...
- RFS_关键字
1. 关键字的参数中能带变量 [示例]: [运行结果]: 2. 关键字的参数中不能带关键字 [示例]: [运行结果]: 其他: (1) 关键字可以理解为高级语言中的“函数”