【暑假】[实用数据结构]动态连续和查询问题
2016-03-30 17:19
218 查看
动态连续和查询问题:
支持操作:
Add(x,d):让 Ax 增加 d
Query(L,R):计算sum(AL,AR)
定义lowbit如下:
前缀和sum与修改结点add如下:
作者所给的模板:
联系题目:LA4329
链接:
支持操作:
Add(x,d):让 Ax 增加 d
Query(L,R):计算sum(AL,AR)
定义lowbit如下:
1 int lowbit(int u){ return u & (-u); }
前缀和sum与修改结点add如下:
1 int sum(int u){ 2 int ret=0; 3 while(u > 0){ 4 ret += C[u]; u -= lowbit(u); 5 } 6 return ret; 7 } 8 9 int add(int u,int d){ 10 while(u<=n){ 11 C[u] += d; u += lowbit(u); 12 } 13 }
作者所给的模板:
//inline int lowbit(int x) { return x&(x^(x-1)); } inline int lowbit(int x) { return x&-x; } struct FenwickTree { int n; vector<int> C; void resize(int n) { this->n = n; C.resize(n); } void clear() { fill(C.begin(), C.end(), 0); } // 计算A[1]+A[2]+...+A[x] (x<=n) int sum(int x) { int ret = 0; while(x > 0) { ret += C[x]; x -= lowbit(x); } return ret; } // A[x] += d (1<=x<=n) void add(int x, int d) { while(x <= n) { C[x] += d; x += lowbit(x); } } };
联系题目:LA4329
链接:
相关文章推荐
- 【暑假】[实用数据结构]范围最小值问题(RMQ)
- 【暑假】[实用数据结构]动态范围查询问题
- 【暑假】[实用数据结构]UVa11995 I Can Guess the Data Structure!
- 【暑假】[实用数据结构]UVa11991 Easy Problem from Rujia Liu?
- 【暑假】[实用数据结构]UVAlive 3135 Argus
- 【暑假】[实用数据结构]UVa11997 K Smallest Sums
- 【暑假】[实用数据结构]UVAlive 3644 X-Plosives
- 【暑假】[实用数据结构]UVAlive 3027 Corporative Network
- 【暑假】[实用数据结构]UVAlive 4329 Ping pong
- 【暑假】[实用数据结构]UVa11235 Frequent values
- 【暑假】[实用数据结构]前缀树 Trie
- 【暑假】[实用数据结构]KMP
- netmap分析(3)-原理分析之数据结构关系
- Java数据结构——双端链表
- 《数据结构》 栈代码操作集合
- 数据结构(java语言描述)串与数组——文件加解密
- 常见的数据结构和算法
- 【数据结构】链表与实现分析
- 数据结构--Dijkstra算法最清楚的讲解
- 数据结构(树链剖分):BZOJ 4034: [HAOI2015]T2