POJ 2155 Matrix(二维树状数组)
来源:互联网 发布:seo 中文url 2017 编辑:程序博客网 时间:2024/05/15 23:48
思路:一个二维树状数组即可轻松解决
参考见:点击打开链接
#include <queue>#include <stack>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <iostream>#include <limits.h>#include <string.h>#include <algorithm>using namespace std;const int MAX = 1010;int c[MAX][MAX];int n;int Lowbit(int x){return x & (-x);}void Updata(int x,int y){int i,k;for(i=x; i<=n; i+=Lowbit(i))for(k=y; k<=n; k+=Lowbit(k))c[i][k]++;}int Get(int x,int y){int i,k,sum = 0;for(i=x; i>0; i-=Lowbit(i))for(k=y; k>0; k-=Lowbit(k))sum += c[i][k];return sum;}int main(){int ncases,m;int x1,y1,x2,y2;char ch[2];scanf("%d",&ncases);while( ncases-- ){memset(c,0,sizeof(c));scanf("%d%d",&n,&m);while( m-- ){scanf("%s",ch);if( ch[0] == 'C' ){scanf("%d%d%d%d",&x1,&y1,&x2,&y2);x1++; y1++; x2++; y2++;Updata(x2,y2);Updata(x1-1,y1-1);Updata(x1-1,y2);Updata(x2,y1-1);}else{scanf("%d%d",&x1,&y1);printf("%d\n",Get(x1,y1)%2);}}printf("\n");}return 0;}
0 0
- poj 2155 Matrix(二维树状数组)
- POJ 2155 Matrix (二维树状数组)
- POJ 2155 Matrix(二维树状数组)
- 【树状数组(二维)】poj 2155 Matrix
- POJ 2155 Matrix (二维树状数组)
- [poj 2155] Matrix(二维树状数组)
- POJ 2155 Matrix (二维树状数组)
- POJ 2155 Matrix(二维树状数组)
- POJ 2155 Matrix(二维树状数组)
- POJ 2155 Matrix(二维树状数组)
- POJ 2155 Matrix(二维树状数组)
- POJ 2155 Matrix(二维树状数组)
- [POJ 2155] Matrix (二维树状数组)
- poj 2155 - Matrix(二维树状数组)
- poj 2155 Matrix (二维树状数组)
- POJ 2155 Matrix (二维树状数组)
- poj 2155 Matrix(二维树状数组)
- poj 2155 Matrix (二维树状数组)
- ubuntu14.04下面安装himawaripy模块时候报下面这个错误
- 安装好Ubuntu16.04后要做的事
- POJ3268
- 电子-电路-电磁(一)阻抗匹配
- 【POJ 2485 Highways】
- POJ 2155 Matrix(二维树状数组)
- Algorithms 学习笔记——1.1
- 学会使用viewPager(一)
- java学习路线注解
- 上班第一天(2)--一个程序员的成长史(11)
- apply call bind区别
- 数学几何____Determine the Shape(uva 11800)
- javaee
- MySQL快速入门03----字符集 & 校对规则