BZOJ3437: 小P的牧场
来源:互联网 发布:小学五人制足球场数据 编辑:程序博客网 时间:2024/05/01 12:47
设f[i]表示控制了1~i,第i个牧场建立了控制站,最小花费
推一下柿子
设第i个牧场的放养量是
设
那么有
若
因为
这就是一个斜率优化了
所以维护一个斜率递增的凸包即可
读入格式都看错了竟然过了样例..
code:
#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long longusing namespace std;inline void read(ll &x){ char c; while(!((c=getchar())>='0'&&c<='9')); x=c-'0'; while((c=getchar())>='0'&&c<='9') (x*=10)+=c-'0';}const int maxn = 1000010;struct node{ ll x,y; int i; node(){} node(const ll _x,const ll _y,const int _i){x=_x;y=_y;i=_i;}}q[maxn]; int head,tail;inline int multi(node p1,node p2,node p3){ p1.x-=p3.x; p1.y-=p3.y; p2.x-=p3.x; p2.y-=p3.y; return p1.x*p2.y-p1.y*p2.x;}inline bool cmp(node x,node y,ll k){return (x.y-y.y) < k*(x.x-y.x); }//y.x-x.x==0?int n;ll a[maxn],c[maxn];ll f[maxn],sck[maxn],sckk[maxn];int main(){ scanf("%d",&n); head=1,tail=1; q[1]=node(0,0,0); for(int i=1;i<=n;i++) read(a[i]); for(int i=1;i<=n;i++) read(c[i]); for(ll i=1;i<=n;i++) { sck[i]=sck[i-1]+c[i]; sckk[i]=sckk[i-1]+c[i]*i; while(head+1<=tail&&!cmp(q[head],q[head+1],i)) head++; int j=q[head].i; f[i]=a[i]+f[j]+i*(sck[i-1]-sck[j])-(sckk[i-1]-sckk[j]); node tmp=node(sck[i],sckk[i]+f[i],i); while(head+1<=tail&&multi(q[tail],tmp,q[tail-1])<=0) tail--; q[++tail]=tmp; } printf("%lld\n",f[n]); return 0;}
0 0
- [BZOJ3437]小P的牧场
- [BZOJ3437] 小P的牧场
- bzoj3437 小P的牧场
- BZOJ3437 小P的牧场
- bzoj3437 小P的牧场
- [bzoj3437] 小P的牧场
- BZOJ3437: 小P的牧场
- BZOJ3437: 小P的牧场
- 【bzoj3437】小P的牧场
- bzoj3437 小P的牧场
- [BZOJ3437] 小P的牧场 && 斜率优化
- 【斜率优化】[BZOJ3437] 小P的牧场
- BZOJ3437 小P的牧场 斜率优化
- bzoj3437小P的牧场(斜率优化)
- 【BZOJ3437】小P的牧场 斜率优化 动态规划
- 【bzoj3437】【小p的牧场】【斜率优化dp】
- 【BZOJ3437】小P的牧场,斜率优化DP
- [BZOJ3437]小P的牧场(斜率优化dp)
- 字符串转16进制
- bzoj3674: 可持久化并查集加强版
- 根据注册表获取cpu信息
- 棋牌游戏运营
- X光图像增强(Gauss Laplacian Pyramid)
- BZOJ3437: 小P的牧场
- 学习笔记第四周——嵌套if语句之计算价钱
- python 事件 响应 钩子 event hooks
- 【jzoj5047】【数字格】【数论】
- 转:Spark的运行架构分析(一)之架构概述
- erlang shell 命令
- 2017毕业设计Android天气APP UI展示
- 转:Spark的运行架构分析(二)之运行模式详解
- numpy中负值统一置0技巧与分析