HDU1166 敌兵布阵(线段树)
来源:互联网 发布:知敬畏,懂感恩 编辑:程序博客网 时间:2024/04/28 13:02
题意:
中文题
要点:
就是一个单点更新的线段树问题,之前一直用线状数组,现在学了一下线段树,这两个能处理的问题都差不多,线段树好理解一些,基本就是存储将一个区间不断二分,形成一个树,方便查询和更新。
#include<iostream>#include<string>#include<algorithm>using namespace std;const int N = 50000 + 5;int sum[N << 2];int pushup(int node){return sum[node] = sum[2 * node] + sum[2 * node + 1];}void build(int node, int l, int r){if (l == r){scanf("%d",&sum[node]);return;}int m = (l + r) / 2;build(2 * node, l, m);build(2 * node + 1, m + 1, r);pushup(node);}void update(int p, int val, int l, int r,int node){if (l == r){sum[node] += val;return;}int m = (l + r)/2;if (p <= m)update(p, val, l, m, 2 * node);elseupdate(p, val, m + 1, r, 2 * node + 1);pushup(node);//回溯更新}int query(int ll, int rr, int l, int r, int node){if (ll <= l&&rr >= r)return sum[node];int m = (l + r) / 2;int ans = 0;if (ll <= m)ans += query(ll, rr, l, m, 2 * node);if (rr > m)ans += query(ll, rr, m + 1, r, 2 * node + 1);return ans;}int main(){int t;char order[100];scanf("%d", &t);for(int kase=1;kase<=t;kase++){printf("Case %d:\n", kase);int n;scanf("%d", &n);build(1, 1, n);while (scanf("%s", order) && order[0] != 'E'){int x, y;scanf("%d%d", &x, &y);if (order[0] == 'A'){update(x, y, 1, n, 1);}else if (order[0] == 'S'){update(x, -y, 1, n, 1);}else if (order[0] == 'Q'){int ans=query(x, y, 1, n, 1);printf("%d\n", ans);}}}return 0;}
0 0
- 线段树 hdu1166 (敌兵布阵)
- 【线段树】 hdu1166 敌兵布阵
- hdu1166 敌兵布阵 线段树
- hdu1166敌兵布阵 (线段树)
- hdu1166 敌兵布阵,线段树
- HDU1166 敌兵布阵(线段树)
- hdu1166 敌兵布阵 线段树
- hdu1166- 敌兵布阵线段树
- 【线段树】hdu1166敌兵布阵
- hdu1166 敌兵布阵(线段树)
- 线段树 HDU1166 敌兵布阵
- hdu1166-敌兵布阵(线段树)
- hdu1166 敌兵布阵 线段树
- hdu1166-敌兵布阵 线段树
- hdu1166敌兵布阵 线段树
- HDU1166 敌兵布阵(线段树)
- hdu1166 敌兵布阵 线段树
- HDU1166 -敌兵布阵(线段树)
- HDU-1058-Humble Numbers(暴力打表)
- Codevs 4019 想越狱的小明
- unity PlayerPrefs本地储存
- 淘宝内部分享:怎么跳出MySQL的10个大坑
- 16.10.15 C组总结
- HDU1166 敌兵布阵(线段树)
- 『Scrapy』登录人人贷并抓取借贷人信息中遇到的坑
- android中ExpandableListView的使用
- Mat 数据元素进行 sum mean 运算 与opecv 库函数进行对比
- 【C++心路历程9】莫名其妙的mod mod哒
- 最长公共子字符串--从O(N3)优化到O(N2)
- C Primer Plus学习 四十六 向函数传递结构信息 (一)
- 微信token server服务
- 常用HTML标签详细介绍