[USACO13DEC]最优挤奶Optimal Milking(zkw写法)
来源:互联网 发布:urlencoder编码 js 编辑:程序博客网 时间:2024/04/28 11:13
传送门
https://www.luogu.org/problem/show?pid=3097
题解
裸裸的线段树o( ̄▽ ̄)ブ
维护:
1. 左端点选择,而右端点不选
2. 右端点选择,而左端点不选
3. 都不选
4. 都选
要开long long!!,,ԾㅂԾ,,
代码
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;struct node{ long long c[2][2]; node(){memset(c,0,sizeof(c));}}segtree[161000];long long n,d;int main(){ long long ans = 0; int m = 1; scanf("%d%d",&n,&d); while(m <= n)m <<= 1;m--; for(int i = m + 1;i <=m + n;i++){ long long x; scanf("%lld",&x); segtree[i].c[1][1] = x; } for(int i = m;i >= 1;i--){ node ls = node(),rs = node(); ls = segtree[i << 1],rs = segtree[(i << 1) + 1]; segtree[i].c[1][1] = max(ls.c[1][0] + max(rs.c[0][1],rs.c[1][1]),ls.c[1][1] + rs.c[0][1]); segtree[i].c[0][0] = max(ls.c[0][0] + max(rs.c[0][0],rs.c[1][0]),ls.c[0][1] + rs.c[0][0]); segtree[i].c[0][1] = max(rs.c[0][1] + max(ls.c[0][1],ls.c[0][0]),rs.c[1][1] + ls.c[0][0]); segtree[i].c[1][0] = max(ls.c[1][0] + max(rs.c[1][0],rs.c[0][0]),ls.c[1][1] + rs.c[0][0]); } for(int i = 1;i <= d;i++){ int x; long long y; scanf("%d%lld",&x,&y); x += m; segtree[x].c[1][1] = y; x >>= 1; while(x > 0){ node ls = node(),rs = node(); ls = segtree[x << 1],rs = segtree[(x << 1) + 1]; segtree[x].c[1][1] = max(ls.c[1][0] + max(rs.c[0][1],rs.c[1][1]),ls.c[1][1] + rs.c[0][1]); segtree[x].c[0][0] = max(ls.c[0][0] + max(rs.c[0][0],rs.c[1][0]), ls.c[0][1] + rs.c[0][0]); segtree[x].c[0][1] = max(rs.c[0][1] + max(ls.c[0][1],ls.c[0][0]), rs.c[1][1] + ls.c[0][0]); segtree[x].c[1][0] = max(ls.c[1][0] + max(rs.c[1][0],rs.c[0][0]), ls.c[1][1] + rs.c[0][0]); x >>= 1; } ans += max(max(segtree[1].c[1][1],segtree[1].c[0][0]),max(segtree[1].c[0][1],segtree[1].c[1][0])); } printf("%lld\n",ans); return 0;}
1 0
- [USACO13DEC]最优挤奶Optimal Milking(zkw写法)
- bzoj4094[Usaco2013 Dec]Optimal Milking最优挤奶
- Optimal Milking
- Optimal Milking
- Optimal Milking
- bzoj 1642: [Usaco2007 Nov]Milking Time 挤奶时间(DP)
- POJ 2112 Optimal Milking (二分+匈牙利)
- POJ 2112 Optimal Milking(最大流)
- poj2112--Optimal Milking(二分多重匹配)
- POJ 2112 Optimal Milking
- 2112 Optimal Milking //MaxMatch
- POJ 2112 OPtimal Milking
- POJ2112 Optimal Milking
- poj2112 Optimal Milking
- POJ 2112 Optimal Milking
- poj 2112 Optimal Milking
- POJ2112--Optimal Milking
- POJ-2112-Optimal Milking
- 数据结构——栈的线性表实现
- Android开发常用开源框架2
- Tensorflow实例:利用LSTM预测股票每日最高价(二)
- must be in segment block c
- Qt简单文件操作
- [USACO13DEC]最优挤奶Optimal Milking(zkw写法)
- Arduino 智能机器人 按指令行走
- iOS 去除字符串中的H5标签
- Qt信号与槽例子
- netty4 实现自定义协议开发
- error C2504基类未定义
- c++环境搭建&&第一个c++程序
- 263. Ugly Number
- init进程如何从内核态切换到用户态