二维bit + 尼姆博奕

#include <iostream>
#include <cstdio>
#include <cstring>
#define Max 510
using namespace std;int n, m;
int a[Max][Max];
int c[Max][Max];int lowbit(int x) {return x & (-x);
}int sum(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;
}void add(int x, int y, int val) {for(int i = x; i <= n; i += lowbit(i))for(int j = y; j <= m; j += lowbit(j))c[i][j] ^= val;
}int main() {int t;scanf("%d", &t);while(t--) {int q;scanf("%d%d%d", &n, &m, &q);memset(c, 0, sizeof(c));for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++) {scanf("%d", &a[i][j]);add(i, j, a[i][j]);}int op, x1, y1, x2, y2;while(q--) {scanf("%d", &op);if(op == 1) {scanf("%d%d%d%d", &x1, &y1, &x2, &y2);int ans = sum(x2, y2) ^ sum(x2, y1 - 1) ^ sum(x1 - 1, y2) ^ sum(x1 - 1, y1 - 1);if(ans)printf("Yes\n");elseprintf("No\n");}else {int val;scanf("%d%d%d", &x1, &y1, &val);add(x1, y1, a[x1][y1]);add(x1, y1, val);a[x1][y1] = val;}}}return 0;
}

hdu 5465(二维树状数组)相关推荐

  1. hdu 1892二维树状数组

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

  2. HDU 5465 Clarke and puzzle (二维树状数组维护区间异或)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5465 解题思路: 因为要对大量的区间进行异或,所以考虑用二维树状数组就行维护. #include< ...

  3. hdu 5465 Clarke and puzzle (二维树状数组+nim博弈)

    解析: 利用二维树状数组来区间询问异或和,以及单点更新,然后利用nim博弈的结论判断胜负. mymy codecode #include <cstdio> #include <cst ...

  4. HDU 5517---Triple(二维树状数组)

    题目链接 Problem Description Given the finite multi-set A of n pairs of integers, an another finite mult ...

  5. HDU - 5517 Triple(三维偏序-二维树状数组/CDQ分治)

    题目链接:点击查看 题目大意:给出 n 个二元对 ( a , b ) 和 m 个三元对 ( c , d , e ),对于所有 b == e 的二元对和三元对,可以通过某种运算形成一个新的三元对 ( a ...

  6. hdu 1892【二维树状数组】

    O(∩_∩)O哈哈~二维树状数组被我搞出来了,太开心了,第一道二维树状数组,(- o -)~zZ 虽然中途还是出问题了,就是S询问的时候我没有考虑坐标的大小问题,还是搜了别人的代码才知道的,看来自己考 ...

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

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

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

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

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

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

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

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

最新文章

  1. Microbiome:宏基因组分箱流程MetaWRAP分析实战和结果解读
  2. DiscuzNT改造-远程内容自动采集-DNT2.5(定时采集、源码下载)
  3. 提高GAN训练稳定性的9大tricks
  4. 2014年计算机二级c语言试题,2014年计算机二级C语言模拟试题及答案(3)
  5. python等待用户输入指定秒_如何在10秒后强制用户输入
  6. 深入浅出学Spring Data JPA
  7. django -- 联合索引
  8. Ubuntu如何安装GIMP软件
  9. 介绍几个比较出名的编程acm题库
  10. 零信任之微分段(微隔离)
  11. RESTful 架构介绍
  12. TiDB集群手动安装
  13. TCP全连接端口扫描器
  14. C语言#define宏中省略号的含义?
  15. 微信朋友如何找回 android,微信怎么恢复好友?简单几步轻松恢复!
  16. 【申博攻略】四.博士申请的个人自述怎么写
  17. 一次Linux中的木马病毒解决经历
  18. cocos获取图片像素
  19. selenium 实战模拟登陆
  20. Broadcasts详解

热门文章

  1. PT100高精度测温电路 AD623+REF3030(转载)
  2. article-六轴码垛机器人admas正逆运动学仿真
  3. 题目:MySql数据查询题目(学生和课程成绩)
  4. 网上银行转账是怎么测的,设计一下测试用例
  5. 天云数据五度蝉联Fintech50强 Hubble实时流计算完胜Flink
  6. Linux:Root(管理员)新建用户,并赋普通用户文件夹的权限,同时普通用户设置文件权限仅自己能访问
  7. 环保建设和环保理念_环保网站设计展示
  8. Java毕业设计之spring+springmvc实现的小型云盘网盘管理系统-课设大作业
  9. LeetCode 1518. 换酒问题
  10. 一个人有10元钱,买啤酒2元钱一瓶,两个啤酒瓶换一瓶,四个啤酒盖换一瓶,请问此人一个喝了多少瓶?