Binary Index Tree(一)(二)
来源:互联网 发布:有个微信精准定位软件 编辑:程序博客网 时间:2024/05/22 14:58
一维
#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 50005int a[N],c[N];int n;int lowbit(int x){ return x&(x^(x-1));}void updata(int p,int x){ while(p<=n) { c[p]+=x; p+=lowbit(p); }}int sum(int p){ int sum=0; while(p>0) { sum+=c[p]; p-=lowbit(p); } return sum;}int main(){ int m,i,t,k; int a1,a2; char str[10]; scanf("%d",&t); for(k=1;k<=t;k++) { scanf("%d",&n); memset(a,0,sizeof(a)); memset(c,0,sizeof(c)); for(i=1;i<=n;i++) { scanf("%d",&m); a[i]+=m; updata(i,m); } printf("Case %d:\n",k); while(scanf("%s",str),strcmp(str,"End")) { if(strcmp(str,"Add")==0) { scanf("%d %d",&a1,&a2); a[a1]+=a2; updata(a1,a2); } else if(strcmp(str,"Sub")==0) { scanf("%d %d",&a1,&a2); a[a1]-=a2; updata(a1,-a2); } else if(strcmp(str,"Query")==0) { scanf("%d %d",&a1,&a2); printf("%d\n",sum(a2)-sum(a1-1)); } } }}</span></strong>
二维
#include<stdio.h>#include<string.h>int c[1010][1010];int n;int lowbit(int x){ return x&(-x);}void updata(int i,int j,int x){ int q,p; for(p=i;p<=n;p+=lowbit(p)) { for(q=j;q<=n;q+=lowbit(q)) { c[p][q]++; } }}int sum(int i,int j){ int sum=0; for(int x=i;x>0;x-=lowbit(x)) { for(int y=j;y>0;y-=lowbit(y)) { sum+=c[x][y]; } } return sum;}int main(){ int t; scanf("%d",&t); while(t--) { int m; scanf("%d%d",&n,&m); char str[2]; memset(c,0,sizeof(c)); while(m--) { scanf("%s",str); if(str[0]=='C') { int x1,y1,x2,y2; scanf("%d%d%d%d",&x1,&y1,&x2,&y2); updata(x1,y1,1); updata(x1,y2+1,-1); updata(x2+1,y1,-1); updata(x2+1,y2+1,1); } else { int x,y; scanf("%d%d",&x,&y); printf("%d\n",sum(x,y)%2); } } if(t) printf("\n"); } return 0;}
阅读全文
0 0
- Binary Index Tree(一)(二)
- Binary Index Tree(一)(二)
- Binary Index Tree系列续篇(三)
- Binary Tree Traversal (一)
- [Leetcode] Binary Index Tree
- [Index]Binary Tree Iterative Traversal
- Data Structure: Binary Index Tree
- Segment Tree and Binary index tree
- Binary Tree(树)
- Binary Tree(构造)
- 树和递归(一)[leetcode]Balanced Binary Tree
- Binary Tree Traversal (二)
- 94. Binary Tree Inorder Traversal(Tree)
- 145. Binary Tree Postorder Traversal(Tree)
- BST(binary search tree)
- binary tree(basic operation)
- 二叉树(binary tree)
- 二叉树(Binary Tree)
- js事件的注册
- [SMOJ1763]伟大的航路
- POJ 3159 Candies (差分约束 Dijkstra+优先队列 SPFA+栈)
- QT学习资料
- 解读angular2官方文档的“快速上手“章节的开发环境,进行配置启动项目(图文)
- Binary Index Tree(一)(二)
- Stream
- PHP开源技术大全(四)
- input值控制按钮样式
- spring boot + dubbo整合注意事项
- LWIP UDP socket编程 可以指定本地端口号及发送长度不能太长问题分析
- Hibernate(七):继承映射
- springboot,mybatics框架搭建基于idea
- Super Jumping! Jumping! Jumping! dp