线段树
来源:互联网 发布:菜鸟网络郑州空港园区 编辑:程序博客网 时间:2024/06/14 14:39
#include <iostream>#include <cstdio>using namespace std ;#define MAXN 70000struct node {int l, r ;int sum ;}T[3*MAXN];int A[MAXN] ;inline int read(){ char ch; bool flag = false; int a = 0; while(!((((ch = getchar()) >= '0') && (ch <= '9')) || (ch == '-'))); if(ch != '-') { a *= 10; a += ch - '0'; } else { flag = true; } while(((ch = getchar()) >= '0') && (ch <= '9')) { a *= 10; a += ch - '0'; } if(flag) { a = -a; } return a;}void build(int i, int l, int r) {T[i].l = l ;T[i].r = r ;T[i].sum = 0 ;if (l == r) {A[l] = i ;return ;}int mid = (l + r) / 2 ;build(i*2, l, mid) ;build(i*2+1, mid+1, r) ;}void Updata(int ri, int value) {if(ri == 1) {T[ri].sum += value ;return ;}T[ri].sum += value ;Updata(ri/2, value) ;}int result ;void fun(int i, int a, int b) {if(T[i].l == a && T[i].r == b) {result += T[i].sum ;return ;}if(a <= T[i*2].r) {if(b <= T[i*2].r) {fun(i*2, a, b) ;} else {fun(i*2, a, T[i*2].r) ;}}if(b >= T[i*2+1].l) {if(a >= T[i*2+1].l) {fun(i*2+1, a, b) ;} else {fun(i*2+1, T[i*2+1].l, b) ;}}}int main() {int T ;int hnum ;int n ;int i ;int j ;char s[6] ;int x, y ;cin >> T ;for (j = 1 ; j <= T ; j ++) {cout << "Case " << j << ":" << endl ;cin >> hnum ;build(1, 1, hnum) ;for(i = 1 ; i <= hnum ; i ++) {cin >> n ;Updata(A[i], n) ;}while(1) {cin >> s ;if (s[0] == 'A') {x = read() ;y = read() ;Updata(A[x], y) ;} else if (s[0] == 'Q') {x = read() ;y = read() ;result = 0 ;fun(1, x, y) ;cout << result << endl ;} else if (s[0] == 'S') {x = read() ;y = read() ;Updata(A[x], -1 * y) ;} else {break ;}}}
http://acm.hdu.edu.cn/showproblem.php?pid=1166
0 0
- 线段树?线段树!
- 线段树?线段树!
- 线段_线段树
- 线段_线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 大型公司最盛行的六大开源项目
- R语言与数据分析之十:购物篮分析
- BZOJ 2656 ZJOI 2012 数列(sequence) 高精度+记忆化搜索
- 生成.X文件的一些方法&&DirectX获取及处理.X文件(初级版)
- Java所有关键字
- 线段树
- 目标关键词|搜索引擎优化工具|网站排名优化|网站排名|关键词分析
- Sketch使用教程(一)
- 基于wakeup_source的linux autosleep分析
- C语言--预处理指令、枚举、递归函数
- linux 查找目录或文件
- 安装系统20141223—2
- 网络聊天工具Socket编程心得
- java文档下载response的设置