1157: 新年彩灯Ⅱ

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 56  Solved: 17
[Submit][Status][Web Board]

Description

新年将至,YY准备挂一片彩灯,形状呈矩形,已知彩灯刚挂完的彩灯共有N*N盏(第一排编号为(1,1),(1,2),(1,3),……,第二排编号为(2,1),(2,2),(2,3)……第N排编号为(N,1),(N,2)……(N,N)),并且都是灭的。彩灯的闪烁由一段程序控制。

每一秒钟程序会生成四个正整数a1,b1,a2,b2(1<=a1,b1,a2,b2<=N),然后将编号(x,y)满足x在a1与a2之间,y在b1与b2之间的灯状态改变一次,即如果灯(x,y)是灭的,那么经过一次改变,灯(x,y)会亮,如果灯(x,y)是亮的,经过一次改变,灯(x,y)会灭。

当YY看着自己挂的彩灯不断闪烁的时候,问题来了,YY想知道任意时刻某盏灯的状态。

Input

多组测试数据,每一组第一行是一个整数N(1<=N<=1000)和一个整数M(1<=M<=3000)。

然后是M行数据,包括以下两种形式:

1 a1 b1 a2 b2 表示将编号(x,y)满足x在a1与a2之间,y在b1与b2之间的灯状态改变一次。

0 x y 表示YY想知道此刻编号(x,y)的灯状态。

Output

对于每组测试数据首先输出“Case #:”('#'表示case序数)

对于每次YY想知道结果的时候,输出灯的状态,如果是亮的输出”1”,否则输出”0”;

Sample Input

3 5

1 1 1 2 2

1 2 2 3 3

0 1 1

0 2 2

0 3 3

2 3

0 1 1

1 1 1 2 2

0 1 1

Sample Output

Case 1:

1

0

1

Case 2:

0

1

二维树状数组单点查询

#include<bits/stdc++.h>
using namespace std;#define e exp(1)
#define pi acos(-1)
#define mod 1000000007
#define inf 0x3f3f3f3f
#define ll long long
#define ull unsigned long long
#define mem(a,b) memset(a,b,sizeof(a))
int gcd(int a,int b){return b?gcd(b,a%b):a;}const int maxn=1010;
int n,m,q;
int c[maxn][maxn];int lowbit(int x)
{return x&-x;
}
void add(int x,int y,int v)
{int yy=y;while(x<=n){y=yy;while(y<=n){c[x][y]+=v;y+=lowbit(y);}x+=lowbit(x);}
}int getsum(int x,int y)
{int sum=0;int yy=y;while(x>0){y=yy;while(y>0){sum+=c[x][y];y-=lowbit(y);}x-=lowbit(x);}return sum;
}
int main()
{int cas=1;while(~scanf("%d%d",&n,&m)){mem(c,0);printf("Case %d:\n",cas++);while(m--){int q;scanf("%d",&q);if(q==1){int x1,y1,x2,y2;scanf("%d%d%d%d",&x1,&y1,&x2,&y2);if(x1>x2){int t=x1;x1=x2;x2=t;}if(y1>y2){int t=y1;y1=y2;y2=t;}add(x1,y1,1);add(x1,y2+1,-1);add(x2+1,y1,-1);add(x2+1,y2+1,1);}else{int x,y;scanf("%d%d",&x,&y);printf("%d\n",getsum(x,y)&1);}}}return 0;
}

zcmu1157: 新年彩灯Ⅱ(二维树状数组)相关推荐

  1. 二维树状数组 ----2021广东省赛 ----- K - Kera‘s line segment[区间转二维平面+树状数组维护前缀最小最大值]

    题目链接 题目大意: 就是一个一维的数轴上面有一堆线段用一个三元组(l,r,val)(l,r,val)(l,r,val)表示. 现在我们有两个操作: 就是往数轴上面添加线段 询问[L,R][L,R][ ...

  2. szu 寒训第二天 树状数组 二维树状数组详解,以及树状数组扩展应用【求逆序对,以及动态第k小数】

    树状数组(Binary Index Tree) 树状数组可以解决可以转化为前缀和问题的问题 这是一类用以解决动态前缀和的问题 (有点像线段树简版) 1.对于 a1 + a2 + a3 + - + an ...

  3. 【二维树状数组】See you~

    https://www.bnuoj.com/v3/contest_show.php?cid=9148#problem/F [题意] 给定一个矩阵,每个格子的初始值为1.现在可以对矩阵有四种操作: A ...

  4. POJ_1195 Mobile phones 【二维树状数组】

    题目链接:http://poj.org/problem?id=1195 纯纯的二维树状数组,不解释,仅仅须要注意一点,由于题目中的数组从0開始计算,所以维护的时候须要加1.由于树状数组的下标是不能为1 ...

  5. 洛谷1527(bzoj2738)矩阵乘法——二维树状数组+整体二分

    题目:https://www.luogu.org/problemnew/show/P1527 不难想到(?)可以用二维树状数组.但维护什么?怎么查询是难点. 因为求第k小,可以考虑记权值树状数组,把比 ...

  6. 二维树状数组 BZOJ 1452 [JSOI2009]Count

    题目链接 裸二维树状数组 #include <bits/stdc++.h>const int N = 305; struct BIT_2D {int c[105][N][N], n, m; ...

  7. HDU-4456 Crowd 二维树状数组+坐标转换

    题意:给定一个N*N的网格,现在M组操作,一种操作时改变网格上的某个单点的权值,另外一种操作是求到一点曼哈顿距离为小于等于k的所有的权值和,初始化网格所有点的权值为0. 解法:这题如果没有那些特定的条 ...

  8. hdu 1892二维树状数组

    这题我知道是用树状数组,可是好久没打树状数组了,就想用普通方法水过去~~结果--结果--水了好多方法都水不过,出题人真狠呐--我的水方法是对于每一次查询,初始化ans=(x2-x1+1)*(y2-y1 ...

  9. poj 1195(二维树状数组)

    解题思路:这是一道很裸的二维树状数组 AC: #include<stdio.h> #include<string.h> #define N 1100 int c[N][N],n ...

最新文章

  1. 【框架设计】健康养老云平台
  2. mysql启动错误1.69,MySQL无法启动例一
  3. 2LIS_13_VDITM中开票项目数量计算错误
  4. pytorch学习笔记(二十七):Batch-Norm
  5. c# 如何读取和写入ini(配置文件)
  6. 【蓝桥杯】历届试题 分糖果
  7. html 图片使用scale,CSS scale()用法及代码示例
  8. 获取地理位置 百度地图
  9. [转]Linux下用gcc/g++生成静态库和动态库(Z)
  10. FineUI分组显示弹框最新的在最上边
  11. linux内核分析与应用 -- 内存管理(上)
  12. 基于微信小程序点餐系统的设计与实现
  13. python源码解读_Python源码剖析[16] —— Pyc文件解析
  14. java web服务器热部署_Tomcat服务器热部署教程_如何实现tomcat热部署
  15. Windows 技术篇 - win10系统更新后切换应用一直自动切换为微软输入法解决方法,win10微软输入法卸载方法
  16. java duration 设置值,Java中的Duration toHours()方法
  17. 任意重循环(循环阶数不定、循环层数不定)
  18. 大咖面对面 | 喵奏@国家建筑师:梦回大宋,一起来做河里人
  19. Go开发 之 基础语法(常量、枚举、注释、类型别名、指针)
  20. mysql一条语句是如何被执行的——带你了解mysql语句执行内部顺序

热门文章

  1. My Goal For SE
  2. Leetcode题解(26)
  3. Linq to XML的练习
  4. Google Maps API编程资源大全
  5. c++学习笔记之类的应用
  6. tensorflow中tf.random_normal和tf.truncated_normal的区别
  7. 编程方法学14:内存
  8. Python入门二(1)
  9. Matlab错误:Y must be a vector or a character array
  10. 在表格中批量显示图片