PTA布尔矩阵的奇偶性

一个布尔方阵具有奇偶均势特性,当且仅当每行、每列总和为偶数,即包含偶数个1。如下面这个4*4的矩阵就具有奇偶均势特性:

⎣⎡​1010​0011​1010​0011​⎦⎤​

编写程序,读入一个n阶方阵并检查它是否具有奇偶均势特性。如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0改为1,把1改为0)来使它具有奇偶均势特性;如果不可能,这个矩阵就被认为是破坏了。

定义并调用如下函数:

int BalanceMatrix(int a[], int n);

函数返回1表示该矩阵具有奇偶均势特性;函数返回2表示可以通过修改1位来达到奇偶均势;函数返回-1表示该矩阵被是破坏了,无法恢复。

输入格式:

第一行是一个整数n ( 0< n < 100 ),代表该方阵的阶数。然后输入n 行,每行n个整数(0或1)。

输出格式:

如果矩阵是布尔矩阵,输出OK;如果能通过只修改该矩阵中的一位来使它成为布尔矩阵,则输出Change bit(i,j),这里i和j是被修改的元素的行与列(行,列号从0开始);否则,输出Corrupt

输入样例:

在这里给出一组输入。例如:

4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1

输出样例:

在这里给出相应的输出。例如:

OK

代码长度限制

16 KB

时间限制

1000 ms

内存限制

64 MB

栈限制

8192 KB

思路:

看所有的行和为奇数的有几个,看所有的列和为奇数的有几个。

方法:

暴力跑一遍行列得到结果。

AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"const ll N = 1e2+7;
ll n;
ll v[N][N],h[N],l[N];//图,每行的和,每列的和 void solve(){cin >> n;for(ll i = 1 ; i <= n ; i ++)for(ll j = 1 ; j <= n ; j ++)cin >> v[i][j];for(ll i = 1 ; i <=n ; i ++)for(ll j = 1 ; j <= n ; j ++){h[i] += v[i][j];l[i] += v[j][i];}bool fh=1,fl=1;//标记行列 ll x=-1,y=-1;for(ll i = 1 ; i <= n ; i ++){if(h[i]%2 && x != -1)fh=0;if(h[i]%2 && x == -1)x=i;if(l[i]%2 && y != -1)fl=0;if(l[i]%2 && y == -1)y=i;}if(x == -1 && y == -1){cout << "OK" << endl;}else if(fh && fl){cout << "Change bit(" << x-1 << "," << y-1 << ")" << endl;}else cout << "Corrupt" << endl;return;
}int main(){ll t=1;//cin >> t;while(t --)solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年腾讯云优惠券领取教程及使用攻略分享

随着云计算技术的快速发展&#xff0c;腾讯云作为国内领先的云计算服务提供商&#xff0c;为企业和个人提供了丰富的云产品和服务。为了帮助大家更好地了解和使用腾讯云&#xff0c;本文将为大家详细介绍2024年腾讯云优惠券领取教程及使用攻略。 一、腾讯云优惠券介绍说明 腾讯…

linux性能调优汇总(一)cpu

目录 一、引言 二、CPU ------>2.1、/proc/cpuinfo ------>2.2、cpuid指令 ------>2.3、lscpu ------>2.4、turbostat ------>2.5、rdmsr ------>2.6、perf ------>2.7、top ------>2.8、ps ------>2.9、pidstat 查看每个进程CPU、内存、…

【CSP试题回顾】201812-1-小明上学(优化)

CSP-201812-1-小明上学 解题代码 #include <iostream> using namespace std;int r, y, g, n, k, t, sumTime;int main() {cin >> r >> y >> g >> n;for (size_t i 0; i < n; i){cin >> k >> t;if (k 0)sumTime t;else if(k1…

成都克鲁斯机器人电路板故障维修攻略,快来了解一下!

一、克鲁斯机器人电路板维修步骤 断开电源&#xff1a;在进行电路维修前&#xff0c;务必断开机器人的电源&#xff0c;确保安全。 拆卸电路板&#xff1a;根据电路图或维修手册&#xff0c;小心拆卸故障电路板。注意记录拆卸过程中的细节&#xff0c;以便后续重新安装。 更换损…

基于 VB6的猜拳游戏

基于 VB6的猜拳游戏 1 欢迎页的制作 welcomeFrom 添加一个定时器 代码如下&#xff1a; Private Sub Form_Load()定时器Timer1的时间间隔设置为1000毫秒Timer1.Interval 1000Timer1.Enabled TrueEnd SubPrivate Sub Timer1_Timer()关闭当前窗体Unload MeReadyFrom.Show…

验证码/数组元素的复制.java

1&#xff0c;验证码 题目&#xff1a;定义方法实现随机产生一个5位的验证码&#xff0c;前面四位是大写或小写的英文字母&#xff0c;最后一位是数字 分析&#xff1a;定义一个包含所有大小写字母的数组&#xff0c;然后对数组随机抽取4个索引&#xff0c;将索引对应的字符拼…

内网exp对抗

内网工具对抗 首先&#xff0c;你需要分析&#xff1a; 1、安全工具是否有源代码 2、安全工具源代码逻辑复杂程度 3、当前源代码你是否有能力修改 其次&#xff0c;你需要考虑&#xff1a; 1、无源码或无能力修改 2、各种异常bug打包问题 3、修改打包后效果也不太好 故…

【Linux】详解进程终止进程等待

一、页表&&写时拷贝的进一步理解 页表中不仅仅只有虚拟地址到物理地址的映射&#xff0c;还包括了很多选项&#xff0c;其中就包括了映射条目的权限。当我们进程的代码和数据加载到内存并和进程地址空间建立映射关系时&#xff0c;如果数据的内容不允许被修改&#xff…

PTA------ 敲笨钟

字符串处理问题&#xff01;------->字符串处理相关操做 代码&#xff1a; #include <iostream> #include<algorithm> #include<cmath> #include<cstring> #include<set> #include<stack> #include<queue> #include<map>…

【Java.mysql】——数据删改(DU) 附加数据库约束

目录 &#x1f6a9;更新(Update) &#x1f6a9;删除&#xff08;Delete&#xff09; &#x1f6a9;数据库约束 &#x1f388;约束类型 ✅NULL约束 ✅NNIQUE 唯一约束 ✅DEFAULT&#xff1a;默认值约束 ✅PRIMARY KEY&#xff1a;主键约束 ✅FOREIGN KEY&#xff1a;外键…

什么是字典序?字典序详解

字典序&#xff0c;也称为词典序、字典顺序、字母序或词序&#xff0c;是指在排序时&#xff0c;按照字母顺序或数字顺序等自然顺序进行排序的方法。通常&#xff0c;字典序应用于字符串排序&#xff0c;但也适用于其他类型的数据结构。 对于字符串来说&#xff0c;字典序的排…

探究 Switch Case 和 While 循环:两种强大的控制结构

在计算机编程中&#xff0c;控制结构是指用于控制程序执行流程的特殊语句或语法。这些结构使程序能够根据不同的条件执行不同的操作&#xff0c;从而增强了程序的灵活性和功能性。本文将介绍两种常见的控制结构&#xff1a;Switch Case 和 While 循环&#xff0c;并通过示例代码…

【前端】Layui的表格常用功能,表单提交事件,表格下拉按钮点击事件,表格外的按钮点击事件

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《前端》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…

使用vue-quill-editor实现图片截图复制粘贴上传

需求 运营需要用多张图片进行OCR识别&#xff0c;图片来源一般是运营的截图&#xff0c;直接粘贴过来&#xff0c;然后需求请求OCR截图提交图片list&#xff0c;粘贴图片的同时需要上传图片到cdn地址&#xff1b; 分析 一个输入框&#xff08;富文本框&#xff09;&#xff…

高阶SQL语句(二)

一 子查询 也被称作内查询或者嵌套查询&#xff0c;是指在一个查询语句里面还嵌套着另一个查询语 句。子查询语句 是先于主查询语句被执行的&#xff0c;其结果作为外层的条件返回给主查询进行下一 步的查询过滤。 ①子语句可以与主语句所查询的表相同&#xff0c;也可以是不…

STM32收发HEX数据包

在实际应用中&#xff0c;STM32的串口通信都是以数据包格式进行收发&#xff0c;这个数据包一般都包含包头和包尾&#xff0c;表示一个数据包。源代码在文末给出 数据包格式&#xff1a; 固定长度&#xff0c;含包头包尾 可变包长&#xff0c;含包头包尾 问题1&#xff1a;当…

YoloV5改进策略:BackBone改进|ECA-Net:用于深度卷积神经网络的高效通道注意力

摘要 本文使用ECA-Net注意力机制加入到YoloV5中。我尝试了多种改进方法&#xff0c;并附上改进结果&#xff0c;方便大家了解改进后的效果&#xff0c;为论文改进提供思路。&#xff08;更新中。。。。&#xff09; 论文&#xff1a;《ECA-Net&#xff1a;用于深度卷积神经网…

183. 从不订购的客户

文章目录 题意思路代码 题意 题目链接 查找未出现在orders表里面的内容 思路 子查询not in 代码 select name as Customers from Customers where id not in (select customerId from Orders group by customerId)

86.分隔链表

给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1&#xff1a; ​ 输入&#xff1a;head [1,4,3,2,5,2], x 3 输出&…

前端学习之JavaScript有关字符串的一些方法

&#xff08;注释是对各个方法的一些解释&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>字符串</title> </head> <body><script>let str1 test1let str2 n…