[USACO13DEC] Optimal Milking
Description
n个点排成一排,点有点权,要求支持两种操作:
- 修改某个点的点权
- 询问取出任意多且不相邻的点的点权和最大值
Solution
跟最大子段和一样,可以用分治做,用线段树记录一下左右端点选没选就行了。
然而并想不到
Code
#include<cstdio>
#include<cctype>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 40005
typedef long long ll;
using std::min;
using std::max;
using std::swap;
#define ls cur<<1
#define rs cur<<1|1
int n,m,val[N];
int mx[N<<2][4];//0 not not 1 not yes 2 yes not 3 yes yes
//0->0+2 1+0 0+0
//1->0+3 0+1 1+1
//2->3+0 2+0 2+2
//3->2+1 3+1 2+3
void pushup(int cur){
mx[cur][0]=max(mx[ls][0]+mx[rs][2],max(mx[ls][1]+mx[rs][0],mx[ls][0]+mx[rs][0]));
mx[cur][1]=max(mx[ls][0]+mx[rs][3],max(mx[ls][0]+mx[rs][1],mx[ls][1]+mx[rs][1]));
mx[cur][2]=max(mx[ls][3]+mx[rs][0],max(mx[ls][2]+mx[rs][0],mx[ls][2]+mx[rs][2]));
mx[cur][3]=max(mx[ls][2]+mx[rs][1],max(mx[ls][3]+mx[rs][1],mx[ls][2]+mx[rs][3]));
}
inline int getint(){
int X=0;int w=0;char ch=0;
while(!isdigit(ch))w|=ch=='-',ch=getchar();
while( isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
return w?-X:X;
}
void build(int cur,int l,int r){
if(l==r){
mx[cur][0]=mx[cur][1]=mx[cur][2]=0;
mx[cur][3]=val[l];
return;
}
int mid=l+r>>1;
build(cur<<1,l,mid);build(cur<<1|1,mid+1,r);
pushup(cur);
}
void modify(int cur,int l,int r,int ql,int c){
if(l==r){
mx[cur][3]=c;
return;
}
int mid=l+r>>1;
if(ql<=mid) modify(cur<<1,l,mid,ql,c);
else modify(cur<<1|1,mid+1,r,ql,c);
pushup(cur);
}
signed main(){
// freopen("in.txt","r",stdin);
n=getint();m=getint();
for(int i=1;i<=n;i++)
val[i]=getint();
build(1,1,n);
ll ans=0;
while(m--){
int x=getint(),y=getint();
modify(1,1,n,x,y);
ans+=(ll)max(mx[1][0],max(mx[1][2],max(mx[1][3],mx[1][1])));
} printf("%lld\n",ans);
return 0;
}
[USACO13DEC] Optimal Milking的更多相关文章
- P3097 [USACO13DEC]最优挤奶Optimal Milking
P3097 [USACO13DEC]最优挤奶Optimal Milking 题意简述:给定n个点排成一排,每个点有一个点权,多次改变某个点的点权并将最大点独立集计入答案,输出最终的答案 感谢@zht4 ...
- 洛谷P3097 - [USACO13DEC]最优挤奶Optimal Milking
Portal Description 给出一个\(n(n\leq4\times10^4)\)个数的数列\(\{a_n\}(a_i\geq1)\).一个数列的最大贡献定义为其中若干个不相邻的数的和的最大 ...
- Optimal Milking 分类: 图论 POJ 最短路 查找 2015-08-10 10:38 3人阅读 评论(0) 收藏
Optimal Milking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 13968 Accepted: 5044 Case ...
- POJ2112 Optimal Milking (网络流)(Dinic)
Optimal Milking Time Limit: 2000MS Memory Limit: 30000K T ...
- POJ 2112 Optimal Milking (二分+最短路径+网络流)
POJ 2112 Optimal Milking (二分+最短路径+网络流) Optimal Milking Time Limit: 2000MS Memory Limit: 30000K To ...
- poj Optimal Milking
Optimal Milking 题目: 有K个机器.C仅仅牛.要求求出最全部牛到各个产奶机的最短距离.给出一个C+K的矩阵,表示各种标号间的距离. 而每一个地方最多有M仅仅牛. 算法分析: 二分+最短 ...
- POJ 2112 Optimal Milking (二分 + floyd + 网络流)
POJ 2112 Optimal Milking 链接:http://poj.org/problem?id=2112 题意:农场主John 将他的K(1≤K≤30)个挤奶器运到牧场,在那里有C(1≤C ...
- 题解 最优的挤奶方案(Optimal Milking)
最优的挤奶方案(Optimal Milking) 时间限制: 1 Sec 内存限制: 128 MB 题目描述 农场主 John 将他的 K(1≤K≤30)个挤奶器运到牧场,在那里有 C(1≤C≤20 ...
- POJ 2112 Optimal Milking (Dinic + Floyd + 二分)
Optimal Milking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 19456 Accepted: 6947 ...
随机推荐
- 为docker配置HTTP代理服务器
背景: node1不能访问外网, node2可以访问外网,node1通过node2的代理服务来访问外网. 1. node1不能访问外网 vim /etc/resolv.conf 注释掉DNS配置文件 ...
- 实现一个jsp同时提交两个form到两个Servlet
<%@ page contentType="text/html;charset=GBK" language="java"%> <html> ...
- python 安装第三方包时 read timed out
记录下安装python第三方包超时报错,解决方法:(以安装numpy为例) pip install numpy 报错:raise ReadTimeoutError(self._pool, None, ...
- CDH版本的hadoop下载
http://archive.cloudera.com/cdh5/cdh/5/加要下载的cdh版本插件 例如: http://archive.cloudera.com/cdh5/cdh/5/zooke ...
- using五大用法
1.命名空间 using namespace 命名空间;//这样每次使用命名空间中的变量时就不用指定命名空间了 注意:头文件中不应有using命名空间的声明 2.类型别名(C++11) using a ...
- C# 从后台代码同步或异步注册Javascript到页面之RegisterStartupScript和RegisterClientScriptBlock的区别
下面来讲讲同步注册JS和异步注册JS的区别 同步注册JS:RegisterClientScriptBlock,相当于在 form开始处(紧接 <form runat="server&q ...
- HashSet源码
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java. ...
- 使用Lucene-Spatial实现集成地理位置的全文检索
Lucene通过Spatial包提供了对基于地理位置的全文检索的支持,最典型的应用场景就是:“搜索中关村附近1公里内的火锅店,并按远近排序”.使用Lucene-Spatial添加对地理位置的支持,和之 ...
- [译]ElasticSearch vs. Solr
在Gen2产品的早期阶段, 我们事实上是失败的, 这促使我们重新审视我们现有的技术栈. 我们仔细分析系统中的每个独立的组件,并记录下来, 当然其中也包括构成我们核心功能的搜索引擎技术. 在我们的通用日 ...
- django rest framework通用view
官方文档:http://www.django-rest-framework.org/ drf为我们提供强大的通用view的功能,本博客对这些view进行简要的总结分析. 首先,我们看一下主要的几种vi ...