hdu 2642 Stars(二维数组 单点更新 区间查询)
来源:互联网 发布:服装设计淘宝 编辑:程序博客网 时间:2024/04/19 10:00
二维树状数组也是固定写好的,用的时候只要改改main函数就好。
#include<cstdio>#include<cstring>#include<iostream>using namespace std;#define maxn 10000int tree[maxn][maxn],mark[maxn][maxn];int lowbit(int i){ return i&(-i);}void update(int x,int y,int t){ for(int i=x;i<maxn;i+=lowbit(i)){ for(int j=y;j<maxn;j+=lowbit(j)){ tree[i][j]+=t; } }}int query(int x,int y){ int sum,i,j; for(i=x;i>0;i-=lowbit(i)) for(j=y;j>0;j-=lowbit(j)) sum+=tree[i][j]; return sum;}int main(){ int n,x,y,x1,x2,y1,y2; char s[3]; scanf("%d",&n); while(n--){ scanf("%s",s); if(s[0]=='B'){ scanf("%d%d",&x,&y); x++; y++; if(mark[x][y]==0){ mark[x][y]=1; update(x,y,1); } } else if(s[0]=='D'){ scanf("%d%d",&x,&y); x++; y++; if(mark[x][y]==1){ mark[x][y]=0; update(x,y,-1); } } else if(s[0]=='Q'){ /*query是往回查*/ scanf("%d%d%d%d",&x1,&x2,&y1,&y2); x1++; x2++; y1++; y2++; if(x1>x2) swap(x1,x2); if(y1>y2) swap(y1,y2); int res=query(x2,y2)-query(x1-1,y2)-query(x2,y1-1)+query(x1-1,y1-1); printf("%d\n",res); } } return 0;}
阅读全文
0 0
- hdu 2642 Stars(二维数组 单点更新 区间查询)
- hdu 2642 二维树状数组 单点更新区间查询 模板水题
- hdu 2642二维树状数组 单点更新区间查询 模板题
- POJ 2155 - Matrix 二维树状数组..区间更新..单点查询
- poj 2155 二维树状数组/区间更新单点查询
- hdu2642二维树状数组单点更新+区间查询
- hdu2642-二维树状数组 单点更新 区间查询
- poj2155-二维树状数组 区间更新 单点查询
- POJ 2155 Matrix 二维树状数组 区间更新,单点查询
- POJ1195:Mobile phones二维树状数组 单点更新,区间查询
- HDU 4819:单点更新,区间查询的二维线段树
- [HDU 4031]Attack[树状数组区间更新单点查询]
- hdu 4533(树状数组区间更新+单点查询)
- 树状数组单点更新和区间更新,二维数组poj2155(区间更新,单点查询)(已加入区间修改区间查询)
- 【树状数组--单点更新区间求和】 hdu1541 Stars
- POJ 2155 Matrix(二维树状数组+数组数组区间更新+单点查询)
- Stars+POJ+数状数组+单点修改+区间查询。
- poj2155树状数组 区间更新 单点查询
- Codeforces Round #422 (Div. 2) 解题报告
- python 类
- 希尔排序
- Leetcode OJ 73 Set Matrix Zeroes [Medium]
- asp.net 快速简单的导出数据 DataTable导出到Excel、GSV
- hdu 2642 Stars(二维数组 单点更新 区间查询)
- C#深度拷贝,浅拷贝
- string and stringstream(1)
- Linux系统-git分支相关操作
- jsp页面中文乱码问题
- 《APP研发录》读书笔记(1、重构)
- csu1332 割耳法
- [python]爬虫库scrapy
- python学习(二)