【DP】 BZOJ 3437: 小P的牧场
来源:互联网 发布:网络神偷电影电视剧 编辑:程序博客网 时间:2024/05/01 09:28
斜率优化一下就行了。。。
#include <bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 1000005;LL a[maxn], H[maxn], s[maxn], f[maxn];int q[maxn], n, m;LL getfz(int j2, int j1){return f[j1] - f[j2] + H[j1] - H[j2];}LL getfm(int j2, int j1){return s[j1] - s[j2];}LL getf(int i, int j){return f[j] + a[i] + i * s[i] - i * s[j] - H[i] + H[j];}void work(){for(int i = 1; i <= n; i++) scanf("%lld", &a[i]);for(int i = 1; i <= n; i++) {scanf("%lld", &s[i]);H[i] = i * s[i];s[i] += s[i-1];H[i] += H[i-1];}f[0] = 0;int h = 0, r = 0;q[r++] = 0;for(int i = 1; i <= n; i++) {while(r - h > 1 && getfz(q[h], q[h+1]) <= i * getfm(q[h], q[h+1])) h++;f[i] = getf(i, q[h]);while(r - h > 1 && getfz(q[r-1], i) * getfm(q[r-2], q[r-1]) <= getfz(q[r-2], q[r-1]) * getfm(q[r-1], i)) r--;q[r++] = i;}printf("%lld\n", f[n]);}int main(){//freopen("data", "r", stdin);while(scanf("%d", &n) != EOF) {work();}return 0;}
0 0
- 【DP】 BZOJ 3437: 小P的牧场
- BZOJ 3437 小P的牧场 斜率优化DP
- bzoj 3437: 小P的牧场(斜率优化DP)
- [BZOJ 3437]小P的牧场:DP斜率优化
- BZOJ 3437: 小P的牧场 (线性dp+斜率优化)
- bzoj 3437: 小P的牧场(斜率DP)
- bzoj 3437: 小P的牧场
- BZOJ 3437 小P的牧场
- bzoj 3437: 小P的牧场
- bzoj 3437: 小P的牧场
- 【bzoj 3437】小P的牧场
- BZOJ 3437: 小P的牧场
- BZOJ P3437 小P的牧场
- 【BOOJ 3437】小P的牧场 斜率优化dp
- 3437: 小P的牧场
- 3437: 小P的牧场
- 3437: 小P的牧场
- 【BZOJ】【P3437】【小P的牧场】【题解】【斜率优化】
- iOS 关于萌(蒙)层的添加,
- Leetcode148: Binary Tree Zigzag Level Order Traversal
- poj2155
- springMVC重定向resulf风格带中文参数
- 解决jeewx-api在maven update是遇到的pom.xml文件报错问题
- 【DP】 BZOJ 3437: 小P的牧场
- 黑马程序员-----java基础第6天学习笔记(主函数、静态代码块、构造代码块、构造函数、static关键字、生成java帮助文档)
- iOS学习XMPP框架之使用DDLog打印日志
- 本博客已经搬家 http://blog.csdn.net/YU_Xianguo/article
- Trinea性能优化之Java(Android)代码优化
- Spring进阶一:Spring开发环境搭建
- 杭电-1879继续畅通工程(kruskal,prim)
- VS2008中添加外链接库文件
- morris的用法(三种图形)