问题描述
给定N * N矩阵A,其元素为0或1.A [i,j]表示第i行和第j列中的数字。最初我们有A [i,j] = 0(1 <= i,j <= N)。

我们可以通过以下方式更改矩阵。给定一个左上角为(x1,y1)且右下角为(x2,y2)的矩形,我们使用“not”操作更改矩形中的所有元素(如果是'0'则更改它变为'1'否则将其变为'0')。要维护矩阵的信息,系统会要求您编写程序以接收和执行两种指令。

1. C x1 y1 x2 y2(1 <= x1 <= x2 <= n,1 <= y1 <= y2 <= n)通过使用左上角为(x1,y1)和更低的矩形来改变矩阵 - 右角是(x2,y2)。 
2. Q xy(1 <= x,

输入
输入的第一行是整数X(X <= 10),表示测试用例的数量。以下X块表示测试用例。<br> <br>每个块的第一行包含两个数字N和T(2 <= N <= 1000,1 <= T <= 50000),表示矩阵的大小和指令的数量。以下T行各自表示具有格式“Q x y”或“C x1 y1 x2 y2”的指令,其已在上面描述。点击
产量
对于每个查询输出一行,其具有表示A [x,y]的整数。<br> <br>每两个连续测试用例之间有一个空行。点击
样本输入
12 10C 2 1 2 2问2 2C 2 1 2 1问1 1C 1 1 2 1C 1 2 1 2C 1 1 2 2问1 1C 1 1 2 1问题2 1
样本输出
1001
采用树状数组的区域修改单点查询
注意一下细节   sum是自上而下  大于0    update是自下而上 小于等于N的!
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int N;
int c[1005][1005];int lowbit(int i)
{return i&-i;
}
void update(int x,int y,int v)
{for(int i=x;i<=N;i+=lowbit(i))for(int j=y;j<=N;j+=lowbit(j))c[i][j]+=v;
}
int sum(int x,int y)
{int ans=0;for(int i=x;i>0;i-=lowbit(i))for(int j=y;j>0;j-=lowbit(j))ans+=c[i][j];return ans;
}
int main()
{int cas,q;scanf("%d",&cas);int first=1;for(int i=1;i<=cas;i++){if(i!=1)printf("\n");scanf("%d%d",&N,&q);memset(c,0,sizeof(c));char s[5];int x1,x2,y1,y2;while(q--){scanf("%s",s);if(s[0]=='C'){scanf("%d%d%d%d",&x1,&y1,&x2,&y2);update(x1,y1,1);update(x2+1,y1,-1);update(x1,y2+1,-1);update(x2+1,y2+1,1);}else if(s[0]=='Q'){scanf("%d%d",&x1,&y1);printf("%d\n",sum(x1,y1)%2);}}}return 0;
}

转载于:https://www.cnblogs.com/bxd123/p/10358455.html

Matrix PKU 2155相关推荐

  1. 解题报告 (九) 二分图最大匹配

    文章目录 二分图最大匹配 解题报告 一.最大匹配模板题 HDU 1083 Courses HDU 2063 过山车 HDU 1528 Card Game Cheater HDU 1179 Olliva ...

  2. pku 3422 Kaka's Matrix Travels 最大费用最大流

    http://poj.org/problem?id=3422 /* 题意:给定一个n*n的矩形方格,要求从(1,1)出发,只能往右下角走,(i + 1,j) 或者 (i + n,j)每次走完将格子里面 ...

  3. POJ 2155 Matrix 二维线段树

    一开始还想跟一维一样用懒惰标记,死活搞不出,看到网上有人说二维的只能做到区间查询单点更新,或单点更新区间查询,用不了懒惰标记.释怀了... 用标记永久化,也就是说一个节点的标记不用往下传,从顶到下查询 ...

  4. Matrix(二维树状数组)入门第一题

    题目链接:http://poj.org/problem?id=2155 Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissio ...

  5. poj pku图论、网络流入门题总结、汇总

    poj pku图论.网络流入门题总结.汇总 分类: acm图论 2010-08-25 18:49 243人阅读 评论(0) 收藏 举报 网络算法networkgraphconstructioninte ...

  6. 矩阵(Matrix)

    题目:矩阵(Matrix) poj的网址:http://poj.org/problem?id=2155 poj题号:2155 时间限制: 3000MS 内存限制: 65536K 题目描述:给定N * ...

  7. pku,zju题目分类

    哎呦喂,直接ctrl+A了.话说浙江大学的题还见过的呢.. 公告: [意见反馈][官方博客]   ural pku Zju 题目分类 收藏   感谢 mugu 的提供.... Ural Problem ...

  8. Android 自定义View ——Matrix (矩阵)

    Matrix的作用: Matrix类包含一个3x3矩阵,用于转换坐标 Matrix (矩阵) 的原理很遗憾自己目前也是含糊的很,这里就不说了,记录自己在项目使用的方法, 这里就简单的记录下Matrix ...

  9. Codeforces 903F Clear The Matrix(状态压缩DP)

    题目链接 Clear The Matrix 题意 给定一个$4 * n$的矩形,里面的元素为$'.'$或$'*'$.现在有$4$种正方形可以覆盖掉$'*'$,正方形的边长分别为$1,2,3,4$. 求 ...

最新文章

  1. bzoj 2588 Spoj 10628. Count on a tree (可持久化线段树)
  2. 「交互式梦境」首次被验证:睡着后,还能回答数学问题
  3. VS2005下如何新建一个WINCE设备的DLL工程
  4. Python内置函数之随机函数
  5. 概要设计说明书案例_逆向前行,趁势而为外贸学院线上教学优秀案例展(七)...
  6. 巧用EditPlus包含VS2010网站项目资源
  7. 西门子s7-200解密软件下载_西门子S7200仿真软件如何使用?
  8. ASP.NET Core 2.0 : 图说管道,唐僧扫塔的故事
  9. c# mysql数据集_C#第四次作业:MySQL数据库及C#操作MySQL数据库
  10. 安卓开发 底部导航图标切换时动画效果_体验安卓 10:好用百倍都不止!
  11. Django:数据插入报错django.db.utils.IntegrityError: (1364, “Field ‘id‘ doesn‘t have a default value“)
  12. asp 环境配置到mysql数据库增删改查
  13. 短视频聚合直播app源码/软件系统开发方案
  14. abaqus6.14安装教程 如何设置中文
  15. WPS word文档_页眉页脚横线的添加和删除
  16. 如何做网线水晶头?(笔记)
  17. 用 dfuse `transaction_lifecycle` 端点跟踪任何交易,包括延期交易
  18. python--Venn图及upsetplot进阶
  19. 【初级算法】10.有效的数独
  20. 2020-06-03:抢红包设计

热门文章

  1. 让你的WordPress主题支持自定义菜单
  2. Linux C 算法与数据结构 --二叉树
  3. Python爬虫入门三urllib库基本使用
  4. VC6 + OpenCV1.0实现图片缩放显示
  5. Python SIP使用总结(WinLinux通用)
  6. vue-cli3项目通过vue如何引入第三方js包完成登陆功能
  7. 前端学习(3316):connect
  8. 前端学习(2997):vue+element今日头条管理--编码规范说明
  9. 工作401-普通编译模式
  10. [css] :placeholder-shown和:focus-within这两个伪类你有使用过吗?说说看