【BZOJ4094】 【Usaco2013 Dec】Optimal Milking(权限题)
Description
Input
Output
Sample Input
1
2
3
4
5
5 2
2 7
1 10
Sample Output
【样例解释】
第1天,最优方案为2+4=6 ( 方案1+3+2一样)
第2天,最优方案为7+4=11
第3天,最优方案为10+3+2=15
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const int N=40010;
const int inf=1000000000;
int n,m,a[N];
ll ans;
struct tree{int l,r;ll f[3][3];
}t[N*4];
void update(int x,int x1,int x2){t[x].f[1][1]=max(t[x1].f[1][1]+t[x2].f[0][1],max(t[x1].f[1][0]+t[x2].f[1][1],t[x1].f[1][0]+t[x2].f[0][1]));t[x].f[1][0]=max(t[x1].f[1][0]+t[x2].f[1][0],max(t[x1].f[1][0]+t[x2].f[0][0],t[x1].f[1][1]+t[x2].f[0][0]));t[x].f[0][1]=max(t[x1].f[0][1]+t[x2].f[0][1],max(t[x1].f[0][0]+t[x2].f[0][1],t[x1].f[0][0]+t[x2].f[1][1]));t[x].f[0][0]=max(t[x1].f[0][0]+t[x2].f[1][0],max(t[x1].f[0][0]+t[x2].f[0][0],t[x1].f[0][1]+t[x2].f[0][0]));return ;
}
void build(int x,int l,int r){t[x].l=l,t[x].r=r;if(l==r){t[x].f[1][1]=a[l];t[x].f[1][0]=t[x].f[0][1]=-inf;t[x].f[0][0]=0;return ;}int mid=(l+r)>>1;build(x*2,l,mid);build(x*2+1,mid+1,r);update(x,x*2,x*2+1);
}
void change(int x,int l,int k){if(t[x].l==l&&t[x].r==l){t[x].f[1][1]=k;t[x].f[1][0]=t[x].f[0][1]=-inf;t[x].f[0][0]=0;return ;}if(t[x].l>l||t[x].r<l) return ;change(x*2,l,k);change(x*2+1,l,k);update(x,x*2,x*2+1);
}
ll query(){//printf("%d %d %d %d\n",c.f[1][1],c.f[1][0],c.f[0][1],c.f[0][0]);return max(max(t[1].f[1][1],max(t[1].f[1][0],t[1].f[0][1])),t[1].f[0][0]);
}
int main(){int x,y;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);build(1,1,n);for(int i=1;i<=m;i++){scanf("%d%d",&x,&y);change(1,x,y);// cout<<query()<<endl;ans+=query();}printf("%lld\n",ans);return 0;
}
【BZOJ4094】 【Usaco2013 Dec】Optimal Milking(权限题)相关推荐
- [bzoj4094][Usaco2013 Dec]Optimal Milking 线段树
4094: [Usaco2013 Dec]Optimal Milking Time Limit: 10 Sec Memory Limit: 128 MB [Submit][Status][Discu ...
- bzoj4094[Usaco2013 Dec]Optimal Milking最优挤奶
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4094 题目大意: 约翰有N 台挤奶机器,这些机器排成了一条直线,其中第i台机器工作效率是A ...
- 【BZOJ4094】[Usaco2013 Dec]Optimal Milking 线段树
[BZOJ4094][Usaco2013 Dec]Optimal Milking Description Farmer John最近购买了N(1 <= N <= 40000)台挤奶机,编号 ...
- bzoj 4094: [Usaco2013 Dec]Optimal Milking
4094: [Usaco2013 Dec]Optimal Milking Description Farmer John最近购买了N(1 <= N <= 40000)台挤奶机,编号为1 . ...
- bzoj 4094: [Usaco2013 Dec]Optimal Milking 线段树
→题目链接← [想说的话] 再次手误... [题解] 对于每个区间维护四种最大值 1.选左端点不选右端点 2.选右端点不选左端点 3.两个端点都选 4.两个端点都不选 然后用线段树搞一搞就好了 注意下 ...
- BZOJ 4094 USACO 2013 Dec. Optimal Milking
线段树 每个节点保存4个值,both表示左右端点都取,neither表示左右端点都不取,left表示只取左端点,right表示只取右端点. 维护的特殊姿势: $cur$的$both=max(ls.l+ ...
- POJ 2112 Optimal Milking(二分+最大流)
POJ 2112 Optimal Milking 题目链接 题意:给定一些机器和奶牛,在给定距离矩阵,(不在对角线上为0的值代表不可达),每一个机器能容纳m个奶牛.问全部奶牛都能挤上奶,那么走的距离最 ...
- [bzoj4094]Optimal Milking
建立线段树,维护区间左端点选/不选,右端点选/不选且不含有相邻两个同时选的最大值,合并时注意细节即可 1 #include<bits/stdc++.h> 2 using namespace ...
- POJ2112 Optimal Milking
这题的大意是有C只牛,K台机器,C只牛与K台机器的距离是已知的,现在还知道,K台机器的最多能容下M只牛,现在问说如何安排这些牛到这些机器上,使得符合上述的限制,同时要使牛与机器的最远距离最小.具体的做 ...
最新文章
- 安卓上的微软 Edge 浏览器新增支持长截图
- 如何在Dart中合并列表
- 每天早上喝一杯豆浆不吃饭,一个月后会是什么反应?
- python实践项目(五)
- 递归法:求n个元素的全排列
- 联想网络同传系统用户手册(联想EDU应用用户手册)[联想硬盘保护,联想网络控制工具]
- 毕设项目 - 基于SSM的音乐网站(含源码+论文)
- 纪念 C语言之父 丹尼斯·里奇 逝世10周年:他发明了计算机世界的钢筋水泥!...
- 智能机器人机器人心得_你是机器人吗
- 2022R1快开门式压力容器操作考试模拟100题模拟考试平台操作
- Python实现求二阶行列式
- 【字节面试-字符串】判断一组字符串能否首尾相连
- STC单片机 定时器时钟FOSC 1T 12T、定时器模式
- 让你快速逃离万能五笔的广告
- DELL服务器自动开机设置
- 虚拟机安装+win10系统
- HBuilder js,css压缩,增强代码的安全性
- 配方奶粉,尽量不用鲜奶
- python如何设置搜狗输入法中英文切换_2020秋季报告:手机输入法AI时代来临,百度输入法优势明显...
- TensorFlow-GPU的安装及keras的安装
热门文章
- java购物车的实现并发控制_购物车的实现原理
- TPC-H测试超详细介绍
- 类美团外卖、骑手、类快递取餐柜、整合菜品供应商、前厅、后厨、配送、智能厨电设备的智慧餐饮业务
- 仿苹果手机_高价回收旧手机旧电脑最终怎么处理了?能不能卖?
- 苹果手机怎么清除缓存_手机里的文件如何彻底删除?教你清除缓存的方法
- Android 开源OS
- 电脑电池,正确给笔记本电脑电池校正的技巧攻略
- 游戏界的“扛把子”,“3D 游戏之父”, 约翰•卡马克的传奇人生
- 可视对讲系统服务器连接失败,可视对讲系统呼叫分机、门口机不通是什么问题?...
- 完美国际真数苹果_让苹果数据线下岗的两款数据线!剪断了还能用!