洛谷 题解 P2117 【小Z的矩阵】
这题这么无聊,亏我还用了读入输出优化。。。
关键在于,这还是道黄题QWQ
掀桌而起 (╯‵□′)╯︵┻━┻
显而易见,在i != j
的情况下,a[i][j] + a[j][i]
和a[j][i] + a[i][j]
都会被记录到,so (a[i][j] * a[j][i]) + (a[j][i] * a[i][j]) mod 2
对答案毫无影响。
在i = j
的情况下,a[i][j] + a[j][i]
就是a[j][i] + a[i][j]
,而且只会记录一次,so a[i][j] * a[j][i] mod 2
对答案的影响即为a[i][i]
本身(1 * 1 = 1, 0 * 0 = 0
)。
先上读入代码:
int n = readint(), q = readint(); // n, q即为题目中的含义,"readint()"是我自己写的读入优化函数
bool ans = false; // 因为是要"mod 2", 所以一个bool变量就够了
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) {
if (readint()) ans = !ans; // i = j, 且值为1,则对答案有“1”的影响
}
else readint(); // i != j, 对答案无影响
}
}
那么后面的q个操作,可以这样看:
因为当操作值为1 or 2时,翻转了1列或1行,所以只对对角线有一次的影响,则对答案有“1”的影响
if (readint() == 3) writeint(ans); //输出
else readint(), ans = !ans; //操作值为1 or 2
完整代码:
#include <stdio.h>
#define Char_Int(a) ((a) - '0')
#define Int_Char(a) ((a) + '0')
int readint();
int writeint(int);
int main()
{
int n = readint(), q = readint();
bool ans = false;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) {
if (readint()) ans = !ans;
}
else readint();
}
}
for (int i = 0; i < q; i++) {
if (readint() == 3) writeint(ans);
else readint(), ans = !ans;
}
}
inline int readint()
{
char c = getchar();
while (c > '9' || c < '0') c = getchar();
int init = Char_Int(c);
while ((c = getchar()) <= '9' && c >= '0') init = (init << 3) + (init << 1) + Char_Int(c);
return init;
}
inline int writeint(int x)
{
if (x < 0) putchar('-'), x = -x;
if (x > 9) writeint(x / 10);
putchar(Int_Char(x % 10));
return x;
}
洛谷 题解 P2117 【小Z的矩阵】的更多相关文章
- 洛谷——P2117 小Z的矩阵
P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余 ...
- 洛谷 P2117 小Z的矩阵
P2117 小Z的矩阵 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1,则G(A)等于所有A[i][j]*A[j][i]的和对2取余 ...
- 洛谷—— P2117 小Z的矩阵
https://www.luogu.org/problemnew/show/2117 题目描述 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1 ...
- 二分图【洛谷P2175】 小Z的游戏分队
P2175 小Z的游戏分队 小Z受不了寂寞,准备举办一次DOTA比赛,为了能让ACM班全部都参加比赛,他还特制了一张DOTA地图能够支持任意多人打任意多人. 现在问题来了,怎么把这么多人分成两队?小Z ...
- 题解 洛谷P2189 【小Z的传感器】
这题就是考察什么时候建边,貌似和搜索没有半毛钱关系\(qwq\) 首先没有传感器的房间是可以随便走来走去的,因为我们不用考虑顺序.于是就考虑先把这些点的相互的边给建起来. 接下来分析一波,对于第\(i ...
- [洛谷P4111][HEOI2015]小Z的房间
题目大意:有一个$n\times m$的房间,一些位置是房间,另一些位置是柱子,相邻两个房间之间有墙,问有多少种方案可以打通一些墙把所有房间连成一棵树,柱子不可以打通 题解:矩阵树定理,把房间当点,墙 ...
- 洛谷 4251 [SCOI2015]小凸玩矩阵
[题解] 二分答案+二分图匹配. 先二分最小值Min,然后扫一遍这个矩阵,把满足a[i][j]<=Min的i,j连边,之后跑二分图匹配,如果最大匹配数大于等于n-k+1,当前的Min即是合法的. ...
- [bzoj4443] [loj#2006] [洛谷P4251] [Scoi2015]小凸玩矩阵
Description 小凸和小方是好朋友,小方给小凸一个 \(N \times M\)( \(N \leq M\) )的矩阵 \(A\) ,要求小秃从其中选出 \(N\) 个数,其中任意两个数字不能 ...
- 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$ ...
随机推荐
- 013.Kubernetes二进制部署worker节点Nginx实现高可用
一 Nginx代理实现kube-apiserver高可用 1.1 Nginx实现高可用 基于 nginx 代理的 kube-apiserver 高可用方案. 控制节点的 kube-controller ...
- ENS中文文档系列之一 [ ENS介绍 ]
前言 ENS中文文档是由我照ENS英文官方文档翻译而来,其中的一些内容和细节得到了ENS官方团队的指导.文档中包含 “LBB译注” 的地方是译者为了便于读者理解而进行的注释. 未来一段时间,我会在该博 ...
- 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...
- IDEA+SpringBoot+Mybatis+maven分布式项目框架的搭建
参考文章:https://blog.csdn.net/qq_34410726/article/details/98214992 一.maven分布式工程的基本架构 demo #父工程模块,主要用来定 ...
- objc里的伪指针TaggedPointer
如果你看过我前面两篇objc函数枢纽msgSend和你印象中的NSString是这样吗,相信已经多次看过它的身影了,到底它是何物何作用,我今日就来揭开谜团.我之所为称呼它为伪指针,是因为它像幽灵一样, ...
- Python 函数知识点整理
- [Part 3] 在Ubuntu 16.04源码编译PCL 1.8.1支持VTK和QT
本文首发于个人博客https://kezunlin.me/post/137aa5fc/,欢迎阅读! Part-3: Install and Configure PCL 1.8.1 with vtk q ...
- 论文阅读:Face Recognition: From Traditional to Deep Learning Methods 《人脸识别综述:从传统方法到深度学习》
论文阅读:Face Recognition: From Traditional to Deep Learning Methods <人脸识别综述:从传统方法到深度学习> 一.引 ...
- 利用tomcat搭建图片服务器
今天来教大家如何使用 tomcat 来搭建一个图片的服务器 1.先将tomcat解压一份并改名 2.此时apache-tomcat-8.5.43-windows-x64-file为图片服务器 依次打开 ...
- odoo12 修行基础篇之 添加字段 (一)
本人刚刚接触odoo12,大概有2个多月的时间,这两天有点时间,就集中写下博客. 本来是打算整理成笔记,想到这段时间的开发经历,着实感觉网上有关odoo的资料太少,学习资料也不多,既然与odoo有缘, ...