问题链接:CCF NOI1048 检测矩阵



时间限制: 1000 ms  空间限制: 262144 KB

题目描述

给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。
  你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。
  "改变矩阵元素"的操作定义为0变成1或者1变成0。

输入

输入n + 1行,第1行为矩阵的大小n(0 < n < 100),以下n行为矩阵的每一行的元素,元素之间以一个空格分开。

输出

如果矩阵符合条件,则输出OK;
  如果矩阵仅改变一个矩阵元素就能符合条件,则输出需要改变的元素所在的行号和列号,以一个空格分开。
  如果不符合以上两条,输出Corrupt。

样例输入

4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1
样例输出

OK

数据范围限制



问题分析

行列同时进行奇偶校验,最后再进行判定。

程序说明

(略)

要点详解

  • 虽然题意中给的是常量的矩阵大小,但是用宏来定义一个符号常量更为合理。

参考链接:(略)。


100分通过的C语言程序:

#include <stdio.h>
#include <string.h>#define N 100int a[N][N];
int rowflag[N], colflag[N];int main(void)
{int n, i, j;scanf("%d", &n);for(i=0; i<n; i++)for(j=0; j<n; j++)scanf("%d", &a[i][j]);// 设置初始值memset(rowflag, 0, sizeof(rowflag));memset(colflag, 0, sizeof(colflag));// 行和列1的个数奇偶设置for(i=0; i<n; i++)for(j=0; j<n; j++)if(a[i][j] == 1) {rowflag[i] = 1 - rowflag[i];colflag[j] = 1 - colflag[j];}// 判定和输出结果int sumrow=0, sumcol=0, row, col;for(i=0; i<n; i++) {sumrow += rowflag[i];sumcol += colflag[i];if(rowflag[i])row = i;if(colflag[i])col = i;}if(sumrow == 0 && sumcol == 0)printf("OK\n");else if(sumrow == 1 && sumcol == 1) {printf("%d %d\n", row + 1, col + 1);} elseprintf("Corrupt\n");return 0;
}

CCF NOI1048 检测矩阵相关推荐

  1. #161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件...

    试题描述给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件. 你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件. "改变矩 ...

  2. Java黑皮书课后题第8章:*8.25(马尔可夫矩阵)一个n*n的矩阵,如果每个元素都是正数,并且每列的元素的和为1,则成为正马尔可夫矩阵。编写下面的方法来检测矩阵是否是马尔可夫矩阵

    *8.25(马尔可夫矩阵)一个n*n的矩阵,如果每个元素都是正数,并且每列的元素的和为1,则成为正马尔可夫矩阵.编写下面的方法来检测矩阵是否是马尔可夫矩阵 题目 题目描述与运行示例 破题 代码 题目 ...

  3. matlab中的isreal函数,matlab线代 isreal函数检测矩阵的复数元素

    1 code clear clc a=[1+1i 0 3;2+2i 11 22] sizeOfA=size(a) %a矩阵有多少行 countOfRow=sizeOfA(1) %a矩阵有多少列 cou ...

  4. 51单片机键盘、矩阵键盘松手检测

    一.对独立按键进行松手检测 当按键按下时,会导致51单片机相应引脚变为低电平.利用这个原理,可以进行按键检测.就像下面这段代码: if(KEY1 == 0) {delay_ms(10);if(KEY1 ...

  5. Matlab随笔之矩阵入门知识

    直接输入法创建矩阵 – 矩阵的所有元素必须放在方括号"[ ]"内: – 矩阵列元素之间必须用逗号","或空格隔开,每行必须用";"隔开 – ...

  6. 【MATLAB】矩阵信息的获取

    1.矩阵结构 矩阵的结构是指矩阵子元素的排列方式. 函数名称 函数功能 isempty(A) 检测矩阵是否为空 isscalar(A) 检测矩阵是否是单元素的标量矩阵 isvector(A) 检测矩阵 ...

  7. 机器学习中的异常检测手段

    1. 异常检测介绍 总体来讲,异常检测问题可以概括为两类:一是对结构化数据的异常检测,二是对非结构化数据的异常检测. 对结构化数据的异常检测的解决思想主要是通过找出与正常数据集差异较大的离群点,把离群 ...

  8. 【51单片机快速入门指南】2.3:GPIO读取矩阵键盘 8个IO读16键

    目录 硬知识 矩阵键盘介绍 测试程序 Key_Board.c Key_Board.h main.c 实验现象 普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK ...

  9. STC51-键盘检测

    键盘分为编码键盘和非编码键盘.键盘上闭合键的识别由专用的硬件编码器实现, 并产生键编码号或键值的称为编码键盘, 如计算机键盘.而靠软件编程来识别的键盘称为非编码键盘, 在单片机组成的各种系统中, 用的 ...

最新文章

  1. 关于做Android+J2ee系统集成开发的一点心得
  2. 数据库的定义、关系型数据库的四种约束。。
  3. Carplay Hub技术
  4. C#中配置文件的使用
  5. TCP三次握手抓包观察实战篇
  6. r语言提取列名_玩转数据处理120题之P1-P20(R语言tidyverse版本)
  7. 为什么使用linux内核,为什么Linux内核使用它所做的数据结构?
  8. 双线服务器有什么作用,双线服务器什么意思
  9. Javascript:拦截所有AJAX调用,重点处理服务器异常
  10. 【HDU 6299】Balanced Sequence
  11. URI和URL的区别比较与理解
  12. [SVM系列之一]白话支持向量机(SVM)
  13. 模2除法(CRC冗余码计算)和二进制/十进制除法
  14. 如何优雅的学习英语?从理解英语的使用思维开始!
  15. win7修复计算机卡了,win7升级到win10后突然很卡的修复方法(图文)
  16. 中高级iOS大厂面试宝典,拿到offer率80%,金三银四将是你的新起点
  17. 分享雷柏无线鼠标接收器损坏后的更换方法
  18. 2016年趋势科技夏令营面试题目
  19. 业务流程优化设计之思想和原则
  20. 安装Ubuntu18.10并安装华硕AC57无线网卡驱动

热门文章

  1. Go发起Http请求及获取相关参数
  2. shared_ptr四宗罪
  3. payload的使 常用xss_跨站脚本XSS Payloads生成器
  4. Spring Boot AOP的使用
  5. linux tomcat守护_Linux 系统下 Tomcat 的服务配置和性能优化
  6. scala中的filter函数
  7. eclipse测试java程序_java-同一项目中的Eclipse junit测试
  8. python导入xlsx转为csv_Python 拆分工作表为单个工作簿
  9. Apache mod_rewrite
  10. Android之——AsyncTask和Handler对照