问题描述
给定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>每两个连续测试用例之间有一个空行。点击
 
样本输入
1
2 10
C 2 1 2 2
问2 2
C 2 1 2 1
问1 1
C 1 1 2 1
C 1 2 1 2
C 1 1 2 2
问1 1
C 1 1 2 1
问题2 1
 
样本输出
1 0 0 1
 
 
采用树状数组的区域修改单点查询
注意一下细节   sum是自上而下  大于0    update是自下而上 小于等于N的!
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int N;
int c[][]; 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=;
for(int i=x;i>;i-=lowbit(i))
for(int j=y;j>;j-=lowbit(j))
ans+=c[i][j];
return ans;
}
int main()
{
int cas,q;
scanf("%d",&cas);
int first=;
for(int i=;i<=cas;i++)
{
if(i!=)printf("\n");
scanf("%d%d",&N,&q);
memset(c,,sizeof(c));
char s[];
int x1,x2,y1,y2;
while(q--)
{
scanf("%s",s);
if(s[]=='C')
{
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
update(x1,y1,);
update(x2+,y1,-);
update(x1,y2+,-);
update(x2+,y2+,);
}
else if(s[]=='Q')
{
scanf("%d%d",&x1,&y1);
printf("%d\n",sum(x1,y1)%);
}
}
}
return ;
}
 
 
 
 
 
 
 
 
 
 

Matrix PKU 2155的更多相关文章

  1. PKU 2155 Matrix(裸二维树状数组)

    题目大意:原题链接 题意很简单,就不赘诉了. 解题思路: 使用二维树状数组,很裸的题. 二维的写起来也很方便,两重循环. Add(int x,int y,int val)表示(x,y)-(n,n)矩形 ...

  2. HDU 2155 Matrix

    Matrix Time Limit: 3000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: 215 ...

  3. POJ 2155 Matrix (D区段树)

    http://poj.org/problem?id=2155 Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 1 ...

  4. POJ poj 2155 Matrix

    题目链接[http://poj.org/problem?id=2155] /* poj 2155 Matrix 题意:矩阵加减,单点求和 二维线段树,矩阵加减,单点求和. */ using names ...

  5. POJ 2155 Matrix【二维树状数组+YY(区间计数)】

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

  6. POJ 2155 Matrix

    二维树状数组....                          Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissio ...

  7. poj 2155:Matrix(二维线段树,矩阵取反,好题)

    Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 17880   Accepted: 6709 Descripti ...

  8. POJ 2155 Matrix (二维线段树)

    Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 17226   Accepted: 6461 Descripti ...

  9. POJ 2155 Matrix (二维树状数组)

    Matrix Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 17224   Accepted: 6460 Descripti ...

随机推荐

  1. ubuntu18虚拟机克隆之后ip相同的解决方案

    最近使用虚拟机装ubuntu18.04,克隆后发现ip是相同的,应为克隆采用的是文件克隆,所以所有的东西都一样.解决最简单的方法就是修改mac然后启动使用netplan apply命令,重启reboo ...

  2. mysql面试题分组并合并列

  3. luogu P2596 [ZJOI2006]书架

    传送门 感觉要死在\(Splay\)里了 orz 这题用\(Splay\)维护这个序列,其中的第\(k\)大点代表这个序列的第\(k\)个数 第一个操作,先把那个数所在的点旋到根,然后把整个根的左子树 ...

  4. 教你如何使用android studio发布release 版本【转】

    原文链接 想必还有人对如何在Android studio (以下简称as)发布release版本的app而狂刷百度吧?都是过来人,我很理解这种心情,百度到的基本是半成品,为什么这么说呢?百度一下,你就 ...

  5. Spring使用RMI进行远程方法调用

    (1).我新建了三个项目,SpringRmiApi(存放提供者和消费者共有的xx,例如实体类以及服务接口等等).SpringRmiService(服务提供者).SpringRmiProvider(服务 ...

  6. 如何用nodejs创建一个webservice

    Posted on March 25th, 2012 under Express.js, Node.jsTags: Express.js, git, GitHub, node.js Looking f ...

  7. 使用nginx实现浏览器跨域请求

    跨域访问问题, 相信很多人都遇到过, 并且都用不同的办法去解决过. 方法有很多种, 不一一叙述了. 这里主要使用nginx反向代理来解决跨域问题. 啥是跨域? 假如你是百度开发人员, 在百度页面去请求 ...

  8. centos 6.5环境下分布式文件系统MogileFS工作原理及分布式部署实现过程

    MogileFS是一套高效的文件自动备份组件,由Six Apart开发,广泛应用在包括LiveJournal等web2.0站点上 MogileFS由3个部分组成:    第1个部分:是server端, ...

  9. 如何利用github打造个人博客专属域名(文字版本)

    1. 前言 此篇文章仅限于记录,不适合作为教程使用. 2. 步骤 2.1 先决条件 有github账号,有个人域名(可在万网购买),电脑本地安装有git环境 2.2 在github新建仓库.例如我的g ...

  10. 玩树莓派(raspberry pi) 2/3 raspbian的遇到的一些问题

    raspberry pi买回来玩了一段时间,现在就记录一下入门遇到的一些问题吧. 首先是烧写镜像,和安装电脑系统是一样的道理. 先要有一个制作一个U启动盘.先将SD卡格式化,再用Win32DiskIm ...