题目描述-->p2117 小z的矩阵

分析:

题目给定我们一个正方形.

容易想到,正方形是对称的.

推敲一下

如果我们的矩阵是这样的↓ 闭眼瞎敲出来的.

\[\begin{bmatrix}
{0}&{1}&{1}&{0}&{1}\\\\
{0}&{1}&{0}&{1}&{0}\\\\
{1}&{0}&{1}&{0}&{1}\\\\
{0}&{1}&{1}&{0}&{0}\\\\
{1}&{1}&{0}&{0}&{1}\\\\
\end{bmatrix}\]

题目给定我们的计算公式为a[i][j]×a[j][i]的和

对于这个栗子.

按照式子来的话我们这么算

 a[1][1]*a[1][1]+a[1][2]*a[2][1]+a[1][3]*
a[3][1]+a[1][4]*a[4][1]+a[1][5]*a[5][1]+
a[2][1]*a[1][2]+a[2][2]*a[2][2]+.......
..............+a[5][5]*a[5][5]

虽然不是手算,但摧残一个计算机你真的忍心嘛emmm

很容易地发现(一点也不容易

a[i][j]*a[j][i]与a[j][i]*a[i][j]的值相同.
如果为1,那么他们加和就是2,%2就变成0.
如果为0,那么他们加和依旧为0,%2依旧为0.
对答案没有贡献!

但是

在我们的对角线上的元素是对答案的贡献是它的平方.

因此我们需要记录对角线上的元素对答案的贡献.

除了对角线上的元素,其他位置都没有贡献.

因此我们可以只记录对角线上的元素的答案.

对于翻转操作,我们很容易发现

每一行每一列均对应地控制一个对角线上的元素.

如何统计我们的答案?

按照上面的例子来看,那答案就是1.

如果翻转的话,我们会改变某一位置上的元素的值.

即0->1,1->0

假如,我们改变地是第5行.那我们最后一个元素得到的就是0.
此时答案为0. 如果我们再去翻转其他行/列,我们得到的答案一定是1.

以此类推,我们发现,只要有翻转操作,我们的答案一定会改变.即从0->1,1->0.

所以我们可以定义变量ans,如果有翻转操作,就将它^=1

-----------------关于^操作.------------------

01=0,11=0.

观察到它的性质,我们就知道如何记录答案了!

(或者你可以!一下

关于^操作,网上有不少讲解,在这里就不展开了.

(懒

------------------代码---------------------

#include<bits/stdc++.h>
#define IL inline
#define RI register int
IL void in(int &x)
{
int f=1;x=0;char s=getchar();
while(s>'9' or s<'0'){if(s=='-')f=-1;s=getchar();}
while(s>='0' and s<='9'){x=x*10+s-'0';s=getchar();}
x*=f;
}
int n,Q,ans;
int main(void)
{
in(n);in(Q);
for(RI i=1;i<=n;i++)
for(RI j=1,c;j<=n;j++)
if(i==j)
in(c),(ans+=c)%=2;
else
in(c);//非对角线上的元素对答案没有贡献,我们只读入.
for(RI i=1,opt,x;i<=Q;i++)
{
in(opt);
if(opt==3)
printf("%d",ans);
else in(x),ans^=1;
}
}

数学【p2117】 小z的矩阵的更多相关文章

  1. 洛谷——P2117 小Z的矩阵

    P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余 ...

  2. 洛谷 P2117 小Z的矩阵

    P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余 ...

  3. 洛谷—— P2117 小Z的矩阵

    https://www.luogu.org/problemnew/show/2117 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1 ...

  4. P2117 小Z的矩阵

    题意: 给你一个初始01矩阵 三种操作 1.给一个x,把第x行01互换 2.给一个x,把第x列01互换 3.求$(\sum_{i=1}^n\sum_{j=1}^nf[i][j]*f[j][i])%2$ ...

  5. luogu P2117 小Z的矩阵(结论题)

    题意 题解 这题有点水. 我们发现对答案有贡献的实际上只有左上到右下的对角线上的数. 因为不在这条对角线上的乘积都要计算两遍,然后%2就都没了... 然后就做完了. #include<iostr ...

  6. 【贪心】【P2117】小Z的矩阵

    传送门 Description 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1, 当然询问一个矩阵的G值实在是太简单了.小Z在给出一个N*N矩 ...

  7. 洛谷 题解 P2117 【小Z的矩阵】

    这题这么无聊,亏我还用了读入输出优化... 关键在于,这还是道黄题QWQ 掀桌而起 (╯‵□′)╯︵┻━┻ 显而易见,在i != j的情况下,a[i][j] + a[j][i]和a[j][i] + a ...

  8. 【BZOJ4031】小Z的房间(矩阵树定理)

    [BZOJ4031]小Z的房间(矩阵树定理) 题面 BZOJ 洛谷 Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子 ...

  9. bzoj 4031: 小Z的房间 矩阵树定理

    bzoj 4031: 小Z的房间 矩阵树定理 题目: 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时 ...

随机推荐

  1. winform-windowsmediaplayer设置可视化效果之条形

    winform导入windowsmediaplayer这个COM组件,他的默认可视化效果为: 而我们需要的可视化效果为: 则我们可以通过代码更改可视化效果:(参数value设为4即可!) //设置可视 ...

  2. Mybatis + Oracle 批量insert的问题

    这个问题真的太坑了 之前用ibatis+sql server 的foreach 很容易就写出来批量insert数据,但是测试后报错:SQL结束格式错误 现在换到银行工作,数据库也换成Oracle了 特 ...

  3. Ironic-Python-Agent

    Ironic-Python-Agent 在PXE部署环境中,deploy模块是通过打开一个iSCSI设备,ironic-conductro将OS的镜像文件写到iSCSI的设备,所以deploy_ram ...

  4. python基础——字典dict

    1.概念: (1)字典dict,是一系列的键—值对.每个键key都和一个值value相映射.(字典是python中唯一的映射类型.) (2)每一项item,是一个键值对key—value对. (3)键 ...

  5. Flex学习笔记

    Flex —— Flexible Box 弹性布局 用来为盒子模型提供灵活性 /* 块级元素 */ .box{ display: flex; } /* 行内元素 */ .box{ display: i ...

  6. HttpRuntime.Cache再学习

    摘抄: 可以看到:读缓存,其实是在调用Get方法,而写缓存则是在调用Insert方法的最简单的那个重载版本. 注意了:Add方法也可以将一个对象放入缓存,这个方法有7个参数,而Insert也有一个签名 ...

  7. 第六章 系统配置:DHCP和自动配置

    系统配置:DHCP和自动配置 写在开头:今天和导师见了个面,抛给我一堆材料以及论文,感觉自己学业更加繁重.有些知识现阶段我可能没办法掌握,但是至少在我需要进一步理解它的时候,要知道在哪个地方能够找到. ...

  8. [CF482B]Interesting Array

    题目大意:构造一个序列$S$,有$m$条限制,每条为$l\;r\;q$,表示$\&_{i=l}^r S_i=q$ 题解:每条限制就把$[l,r]$内的数或上$q$,最后判断就行了 卡点:我又写 ...

  9. 洛谷 P3349 [ZJOI2016]小星星 解题报告

    P3349 [ZJOI2016]小星星 题目描述 小\(Y\)是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有\(n\)颗小星星,用\(m\)条彩色的细线串了起来,每条细线连着两颗小星星. 有一 ...

  10. poj 1764 Dice Contest

    题目戳这里. 首先我要吐槽这个题目描述不清.\(2\)对着选手,那选手朝那边?看完别人写的程序后我才知道选手对着目标所在的方向(或左或右). 然后这道题还是不错的,因为他交给我矩阵乘法不只有常规意义下 ...