线段树

每个节点保存4个值,both表示左右端点都取,neither表示左右端点都不取,left表示只取左端点,right表示只取右端点。

维护的特殊姿势:

$cur$的$both=max(ls.l+rs.r,ls.both+rs.r,ls.l+rs.both)$

$cur$的$neither=max(ls.nei+rs.nei,ls.r+rs.nei,ls.nei+rs.l)$

$cur$的$left=max(ls.l+rs.l,ls.l+rs.nei,ls.both+ls.nei)$

$cur$的$right=max(ls.r+rs.r,ls.nei+rs.r,ls.nei+rs.both)$

 #include<cstdio>
#include<algorithm>
#define LL long long
#define ls (cur<<1)
#define rs (cur<<1|1)
#define mid ((l+r)>>1)
using namespace std;
const int maxn=;
LL n,m,ans;
struct tree{
LL both,l,r,nei;
}a[maxn];
void read(LL &k){
k=; int f=; char c=getchar();
while (c<''||c>'')c=='-'&&(f=-),c=getchar();
while (''<=c&&c<='')k=k*+c-'',c=getchar();
k*=f;
}
void pushup(int cur,int l,int r){
if (l==r) return;
int t1=a[ls].both+a[rs].r,t2=a[ls].l+a[rs].both,t3=a[ls].l+a[rs].r, //both
t4=a[ls].l+a[rs].l,t5=a[ls].l+a[rs].nei,t6=a[ls].both+a[rs].nei, //left
t7=a[ls].r+a[rs].r,t8=a[ls].nei+a[rs].r,t9=a[ls].nei+a[rs].both, //right
t10=a[ls].nei+a[rs].nei,t11=a[ls].nei+a[rs].l,t12=a[ls].r+a[rs].nei; //neither
a[cur].both=max(max(t1,t2),t3);
a[cur].l=max(max(t4,t5),t6);
a[cur].r=max(max(t7,t8),t9);
a[cur].nei=max(max(t10,t11),t12);
}
void build(int cur,int l,int r){
a[cur].l=; a[cur].r=; a[cur].nei=;
if (l<r){
build(ls,l,mid);
build(rs,mid+,r);
}
else read(a[cur].both);
pushup(cur,l,r);
}
void update(int cur,int l,int r,int pos,int x){
if (l==r) a[cur].both=x;
else{
if (pos<=mid) update(ls,l,mid,pos,x);
else update(rs,mid+,r,pos,x);
}
pushup(cur,l,r);
}
int main(){
read(n); read(m);
build(,,n);
for (int i=;i<=m;i++){
LL x,y; read(x); read(y);
update(,,n,x,y);
ans+=max(max(max(a[].both,a[].nei),a[].l),a[].r);
}
printf("%lld\n",ans);
return ;
}

BZOJ 4094 USACO 2013 Dec. Optimal Milking的更多相关文章

  1. bzoj 4094: [Usaco2013 Dec]Optimal Milking

    4094: [Usaco2013 Dec]Optimal Milking Description Farmer John最近购买了N(1 <= N <= 40000)台挤奶机,编号为1 . ...

  2. USACO翻译:USACO 2013 DEC Silver三题

    USACO 2013 DEC SILVER 一.题目概览 中文题目名称 挤奶调度 农场航线 贝西洗牌 英文题目名称 msched vacation shuffle 可执行文件名 msched vaca ...

  3. 【BZOJ4094】[Usaco2013 Dec]Optimal Milking 线段树

    [BZOJ4094][Usaco2013 Dec]Optimal Milking Description Farmer John最近购买了N(1 <= N <= 40000)台挤奶机,编号 ...

  4. BZOJ 1606 USACO 2008 Dec. 购买干草

    [题意概述] 有n件物品,每件物品有体积Vi,背包容量为C,问最多可以装多少体积的物品 [题解] 显然是个无限背包嘛.. 直接做背包DP就好 注意无限背包的写法和01背包的区别 #include< ...

  5. Optimal Milking 分类: 图论 POJ 最短路 查找 2015-08-10 10:38 3人阅读 评论(0) 收藏

    Optimal Milking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 13968 Accepted: 5044 Case ...

  6. POJ 2112 Optimal Milking (二分+最短路径+网络流)

    POJ  2112 Optimal Milking (二分+最短路径+网络流) Optimal Milking Time Limit: 2000MS   Memory Limit: 30000K To ...

  7. POJ2112 Optimal Milking

    Optimal Milking Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 17811   Accepted: 6368 ...

  8. Optimal Milking POJ - 2112 (多重最优匹配+最小费用最大流+最大值最小化 + Floyd)

      Optimal Milking Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 19347   Accepted: 690 ...

  9. POJ2112 Optimal Milking —— 二分图多重匹配/最大流 + 二分

    题目链接:https://vjudge.net/problem/POJ-2112 Optimal Milking Time Limit: 2000MS   Memory Limit: 30000K T ...

随机推荐

  1. bzoj2989

    坐标轴转化+cdq分治 我们发现那个绝对值不太好搞,于是我们把曼哈顿距离转为切比雪夫距离,x'=x-y,y'=x+y,这样两点之间距离就是max(|x1'-x2'|,|y1'-y2'|),这个距离要小 ...

  2. E20170602-ts

    questionnaire  n. 调查问卷; 调查表;  アンケート不是英语 collection   n. 征收; 收集,采集; 收藏品; 募捐; association   n. 联想; 协会, ...

  3. bzoj 1725: [Usaco2006 Nov]Corn Fields牧场的安排【状压dp】

    压一维状态,转移时把符合条件的上一行加上 #include<iostream> #include<cstdio> using namespace std; const int ...

  4. [Swift通天遁地]一、超级工具-(12)使用Toaster制作简短提示语的吐司窗口

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. SPFA+Dinic HDOJ 5294 Tricks Device

    题目传送门 /* 题意:一无向图,问至少要割掉几条边破坏最短路,问最多能割掉几条边还能保持最短路 SPFA+Dinic:SPFA求最短路时,用cnt[i]记录到i最少要几条边,第二个答案是m - cn ...

  6. Windows及Linux环境下Tomcat的JVM参数调优

    Windows环境: catalina.bat文件修改 set JAVA_OPTS=-server -Xms4096m -Xmx4096m -XX:PermSize=512m -XX:MaxPermS ...

  7. 01—Spring基础配置IOC

  8. 14 C#编程中的逻辑运算

    在C#编程中,我们经常需要处理这些情况. 1. 某种条件为真时,程序这样处理:当某种条件为假时,程序那样处理. 2. 当某种条件为真时,程序一直这样处理: 这里的条件,在C#中就是逻辑运算.接下来我就 ...

  9. 6.12---知道参数的重要性------插入数据-删除数据-修改数据注意Map

    ---------------

  10. 动态属性ExpandoObject

    1.动态创建对象及其属性ExpandoObject 查看ExpandoObject的定义: