zoj3573 Under Attack (线段树)
来源:互联网 发布:程序员面试技巧 知乎 编辑:程序博客网 时间:2024/05/18 22:15
这是ZOJ Monthly, February 2012的C题,比赛时我提交了好几次结果都是Segmentation Fault。我也不知道这是什么错误,检查了好几遍代码也没发现有什么问题。今天又重敲了一遍,提交还是SF。想了想,把数组改大了些,再提交,AC~ 但是之前数组的大小已经大于4倍区间了啊,真心不知道为什么。。。
/* * ===================================================================================== * * Filename: cc.cpp * * Description: * * Version: 1.0 * Created: 2012年02月26日 12时29分01秒 * Revision: none * Compiler: gcc * * Author: ahfywff (), ahfywff@163.com * Organization: * * ===================================================================================== */#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int maxn = 222222;int dl[maxn<<2], dr[maxn<<2], dm[maxn<<2], dd[maxn<<2];void pushUp(int rt){if (dm[rt<<1] > dm[rt<<1|1]){dl[rt] = dl[rt<<1];dr[rt] = dr[rt<<1];dm[rt] = dm[rt<<1];}else if (dm[rt<<1] < dm[rt<<1|1]){dl[rt] = dl[rt<<1|1];dr[rt] = dr[rt<<1|1];dm[rt] = dm[rt<<1|1];}else{dl[rt] = dl[rt<<1];dr[rt] = dr[rt<<1|1];dm[rt] = dm[rt<<1];}return ;}void pushDown(int rt){if (dd[rt] != 0){dd[rt<<1] += dd[rt];dd[rt<<1|1] += dd[rt];dm[rt<<1] += dd[rt];dm[rt<<1|1] += dd[rt];dd[rt] = 0;}return ;}void build(int l, int r, int rt){dl[rt] = l;dr[rt] = r;dm[rt] = dd[rt] = 0;if (l == r) return ;int m = (l + r) >> 1;build(l, m, rt << 1);build(m + 1, r, rt << 1 | 1);return ;}void update(int L, int R, int d, int l, int r, int rt){if (L <= l && R >= r){dm[rt] += d;dd[rt] += d;return ;}pushDown(rt);int m = (l + r) >> 1;if (L <= m) update(L, R, d, l, m, rt << 1);if (R > m) update(L, R, d, m + 1, r, rt << 1 | 1);pushUp(rt);return ;}int main(){int l, a, b, d;while (scanf("%d", &l) != EOF){build(0, l, 1);while (scanf("%d %d %d", &a, &b, &d)){if (a == -1) break;update(a, b, d, 0, l, 1);}printf("%d %d\n", dl[1], dr[1]);}return 0;}
- zoj3573 Under Attack (线段树)
- ZOJ 3573 Under Attack (线段树版)
- ZOJ3574 Under Attack II【线段树】
- ZOJ--3574--Under Attack II【线段树+欧拉公式】
- ZOJ 3573 Under Attack (线段树两边维护最大值)
- zoj 3573 Under Attack(线段树 标记法 最大覆盖数)
- zoj 3573 Under Attack
- zoj 3573 Under Attack
- zoj 3573 Under Attack
- zoj 3573 Under Attack
- ZOJ 3573 Under Attack
- Under Attack II
- Cells Not Under Attack
- 线段树 HDU 4031 attack
- 【线段树】 HDOJ 4031 Attack
- ZOJ 3575 Under Attack III
- B. Cells Not Under Attack
- B - Cells Not Under Attack
- 并查集
- 作为一名合格的Linux程序员,我们应当读那些书呢?????
- 安卓渠道汇-为安卓应用推广者而生
- 当我每敲击一行代码时,我会想到的(稍微夸张了一些)
- 一些常用的场景进行描述分析(权限管理、6个典型场景)
- zoj3573 Under Attack (线段树)
- 希望这些建议,能推动管理软件开发的规范化进程 (当前操作员类BaseUserInfo)
- 面试题
- SUN JDK个个版本的下载地址!
- (C++)定义类的拷贝构造函数
- git的简单使用
- Linux下find命令实例
- context3D属性和方法的用途
- 怎么解决 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序