问题2293--矩阵(POJ2155)

2293: 矩阵(POJ2155)

时间限制: 1 Sec  内存限制: 128 MB
提交: 4  解决: 4
[提交] [状态] [讨论版] [命题人:]

题目描述

给定一个N*N矩阵A,其元素为0或1。A[i,j]表示第i行和第j列中的数字。最初,我们有A[i]=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 x y(1≤x,y≤n)查询A[x,y]。

输入

输入的第一行是一个整数X(X≤10),表示测试用例的数量。以下X块各代表一个测试用例。
每个块的第一行包含两个数字N和T(2≤N≤1000,1≤T≤50000),表示矩阵的大小和指令的数量。以下T行分别表示具有“Q x y”或“C x1 y1 x2 y2”格式的指令,如上所述。

输出

对于每个查询输出一行,该行有一个表示A[x,y]的整数。
每两个连续的测试用例之间有一条空行。

样例输入 Copy

1
2 10
C 2 1 2 2
Q 2 2
C 2 1 2 1
Q 1 1
C 1 1 2 1
C 1 2 1 2
C 1 1 2 2
Q 1 1
C 1 1 2 1
Q 2 1

样例输出 Copy

1
0
0
1

来源/分类