网站设计包含哪些技术,外行怎么做网站,做saas网站可行吗,海口网站制作网站问题描述给定N * N矩阵A#xff0c;其元素为0或1.A [i#xff0c;j]表示第i行和第j列中的数字。最初我们有A [i#xff0c;j] 0#xff08;1 i#xff0c;j N#xff09;。 我们可以通过以下方式更改矩阵。给定一个左上角为#xff08;x1#xff0c;y1…问题描述 给定N * N矩阵A其元素为0或1.A [ij]表示第i行和第j列中的数字。最初我们有A [ij] 01 ij N。 我们可以通过以下方式更改矩阵。给定一个左上角为x1y1且右下角为x2y2的矩形我们使用“not”操作更改矩形中的所有元素如果是0则更改它变为1否则将其变为0。要维护矩阵的信息系统会要求您编写程序以接收和执行两种指令。 1. C x1 y1 x2 y21 x1 x2 n1 y1 y2 n通过使用左上角为x1y1和更低的矩形来改变矩阵 - 右角是x2y2。 2. Q xy1 x 输入 输入的第一行是整数XX 10表示测试用例的数量。以下X块表示测试用例。br br每个块的第一行包含两个数字N和T2 N 1000,1 T 50000表示矩阵的大小和指令的数量。以下T行各自表示具有格式“Q x y”或“C x1 y1 x2 y2”的指令其已在上面描述。点击 产量 对于每个查询输出一行其具有表示A [xy]的整数。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的 #includecstdio
#includecstring
#includealgorithm
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 ix;iN;ilowbit(i))for(int jy;jN;jlowbit(j))c[i][j]v;
}
int sum(int x,int y)
{int ans0;for(int ix;i0;i-lowbit(i))for(int jy;j0;j-lowbit(j))ansc[i][j];return ans;
}
int main()
{int cas,q;scanf(%d,cas);int first1;for(int i1;icas;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(x21,y1,-1);update(x1,y21,-1);update(x21,y21,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