poj2155 Matrix 树状数组套树状数组
来源:互联网 发布:上网行为监控软件 编辑:程序博客网 时间:2024/05/16 11:17
Description
给定一些二维数组中的操作形如C x1 y1 x2 y2表示把(x1,y1)到(x2,y2)中的数字0变成1,1变成0,Q x y表示查询(x,y)
Solution
–
sb题,直接二维树状数组套树状数组。至于0还是1的问题可以看成操作了x次就是x%2,按照类似矩阵前缀和的方法更新
Code
#include <stdio.h>#include <string.h>#define rep(i,st,ed) for (int i=st;i<=ed;++i)#define fill(x,t) memset(x,t,sizeof(x))#define N 2005int c[N][N];int T,n,m;void read(int &x) { x=0; char ch=getchar(); for (;ch<'0'||ch>'9';ch=getchar()); for (;ch<='9'&&ch>='0';x=x*10+ch-'0',ch=getchar());}int lowbit(int x) {return x&(-x);}int query(int x,int y) { int ret=0; for (int i=x;i>0;i-=lowbit(i)) { for (int j=y;j>0;j-=lowbit(j)) { ret+=c[i][j]; } } return ret&1;}void modify(int x,int y) { for (int i=x;i<=n;i+=lowbit(i)) { for (int j=y;j<=n;j+=lowbit(j)) { ++c[i][j]; } }}int main(void) { read(T); while (T--) { fill(c,0); read(n); read(m); rep(i,1,m) { char opt=getchar(); int x1,y1,x2,y2; read(x1); read(y1); if (opt=='Q') printf("%d\n",query(x1,y1)); else { read(x2); read(y2); modify(x1,y1); modify(x2+1,y1); modify(x1,y2+1); modify(x2+1,y2+1); } } puts(""); } return 0;}
阅读全文
0 0
- poj2155 Matrix 树状数组套树状数组
- poj2155 树状数组 Matrix
- POJ2155 Matrix(树状数组)
- Poj2155 Matrix 树状数组
- poj2155--Matrix--二维树状数组
- POJ2155 Matrix(二维树状数组)
- poj2155 Matrix 【二维树状数组】
- poj2155~Matrix~二维树状数组!
- POJ2155 Matrix 二维树状数组
- poj2155 Matrix 【二维树状数组】
- 【poj2155】【二维树状数组】Matrix
- poj2155 Matrix 二维树状数组
- [POJ2155] Matrix - 二维树状数组
- 【POJ2155】Matrix(二维树状数组)
- POJ2155-Matrix-二维树状数组
- poj2155 Matrix 二维树状数组
- poj2155 Matrix 二维树状数组
- POJ2155-二维树状数组-Matrix
- 这一次带你彻底了解Cookie
- 去掉input点击时候的背景颜色
- 假如时光倒流, 我会这么学习Java
- free 命令详解
- Qt 快速入门第三版 ---第17章 数据库和XML --抄录
- poj2155 Matrix 树状数组套树状数组
- MongoDB的优点和缺点
- 【Scikit-Learn 中文文档】模型选择:选择估计量及其参数
- LinkedHashSet源码分析解读
- 钥匙串使用
- 冒泡排序
- 稳压电源 连载21:附录5 本书符号表
- 经济大v对于房地产走势的观点总结,欢迎拍砖
- 友盟分享上传图片