试题描述

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

输入格式

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

输出格式

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

样例输入
样例输入1
4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1 样例输入2
4
1 0 1 0
0 0 1 0
1 1 1 1
0 1 0 1 样例输入3
4
1 0 1 0
0 1 1 0
1 1 1 1
0 1 0 1 样例输出
样例输出1
OK 样例输出2
2 3 样例输出3
Corrupt 其它说明

  

二维数组//做法;先把每一列每一行遍历一次,同时记录每一行每一列奇数行和列的个数,然后(重要的来了)如果奇数的(行和列)都==0,则输出OK,如果行列都
==1,则才输出b[0]和c[0]的值,如果不满足则输出corrupt。因为题目要求的是只能修改一次!

  

#include<stdio.h>
#include<string.h>
int main()
{
int a[101][101];
int b[100],c[100];
int n;
int i,j,s1,s2;
while(~scanf("%d",&n))
{ b[0]=0;
c[0]=0;
for(i=1,s1=0,s2=0;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&a[i][j]);
if(a[i][j]==1)
{
b[i]++;//记录第i行的1的个数;
} }
} for(j=1;j<=n;j++)
{
for(i=1;i<=n;i++)
{
if(a[i][j]==1)
{
c[j]++;//记录第j列的1的个数;
}
}
} for(i=1;i<=n;i++)
{
if(b[i]%2!=0)//判断第i行的1的个数是否为奇数;
{
s1++;
b[0]=i;//记录有几个奇数行;下面对于列的判断同理;
}
if(c[i]%2!=0)
{
s2++;
c[0]=i;
}
}
if(s1==0&&s2==0)
printf("OK\n");
else if(s1==1&&s2==1)
{
printf("%d %d\n",b[0],c[0]);
}
else
printf("Corrupt\n"); memset(b,0,sizeof(b));
memset(c,0,sizeof(c)); } return 0;
}

  

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

  1. 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。

    谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数. Google2009华南地 ...

  2. MATLAB:一个K×M的矩阵,第一列是1,其它都是0,从最后一行开始,每循环一次,最后一行的1往右边移一位,移动到末尾后溢出,重新回到最左边,同时上一行的1往右边移一位

    问题:一个K×M的矩阵,第一列是1,其它都是0,从最后一行开始,每循环一次,最后一行的1往右边移一位,移动到末尾后溢出,重新回到最左边,同时上一行的1往右边移一位.上一行溢出时,上上一行的1移动一位, ...

  3. Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据

    Atitit.列表页面and条件查询的实现最佳实践(1)------设置查询条件and提交查询and返回json数据 1. 1. 配置条件字段@Conditional 1 1 2. 2. 配置条件字段 ...

  4. 在行列都排好序的矩阵中找数 【题目】 给定一个有N*M的整型矩阵matrix和一个整数K, matrix的每一行和每一 列都是排好序的。实现一个函数,判断K 是否在matrix中。 例如: 0 1 2 5 2 3 4 7 4 4 4 8 5 7 7 9 如果K为7,返回true;如果K为6,返 回false。 【要求】 时间复杂度为O(N+M),额外空间复杂度为O(1)。

    从对角考虑 package my_basic.class_3; /** * 从对角开始 */ public class Code_09_FindNumInSortedMatrix { public s ...

  5. js--数组的every()和some()方法检测数组是否满足条件的使用介绍

    前言 阅读本文之前先来思考一个问题,如何如实现判断一个数组中是否存在满足条件的元素,如何去判断数组中是否全部元素都满足判断条件,这里可能能想到使用for循环遍历数组,if()判断每一项是否符合条件,同 ...

  6. 符合阿里巴巴代码规范的checkstyle检测文件

    一.安装与简介 eclipse和idea都有对应的插件,找到插件安装界面.搜索checkstyle,点击安装后,重启IDE即可.(网上有很多安装教程,就不重复制造轮子了) 二.导入配置文件 在chec ...

  7. jquery实时监测手机号是否符合规则,并根据手机号检测结果将提交按钮设为不同状态

    功能: 输入手机号,实时判断手机号输入的是否符合规则: 如果不合规则,则提交按钮为禁用状态,手机号信息不可提交,按钮显示灰色背景: 如果符合规则,则可提交所输入的手机号信息,并将按钮背景设成红色. 代 ...

  8. 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。

    // test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  9. 等价于n*n的矩阵,填写0,1,要求每行每列的都有偶数个1 (没有1也是偶数个),问有多少种方法。

    #define N 4 /* * 公式: * f(n) = 2^((n - 1) ^2) */ int calWays(int n) { int mutiNum = (n - 1) * (n - 1) ...

随机推荐

  1. converting the moment tensor to strie-dip-rake

    在多断层求解的试验中,用到了六个基本矩张量: 而显然,尚不能从图中直接读出strke,dip,rake的值,但有关资料给出了这六个基本矩张量的momet tensor: 而找到一个网站可以方便地将mo ...

  2. ui自动化:python+appium----环境搭建

    前言: appium可以说是app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本支持java和python.以下为python+appium的安装教程... 环境准备... ...

  3. GitHub入门与实践 读书笔记一:欢迎来到GitHubde世界

    1.什么是GitHub GitHubshi为开发者提供Git仓库的托管服务.除此之外,还为开发者提供能帮助提高代码效率和品质的功能. GitHub和Git的区别? Git是源码仓库而GitHub是在网 ...

  4. disjoint set

    MAKE-SET.x/ creates a new set whose only member (and thus representative) is x. Since the sets are d ...

  5. JS的异步操作

    异步操作: 1.定时器都是异步操作 2.事件绑定都是异步操作 3.AJAX中一般我们都采用异步操作 4.回调函数可以理解为异步 同步:一次只能完成一个任务,如果多个任务就必须排队,先前面一个任务再执行 ...

  6. 自动化测试-6.selenium的css定位

    前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...

  7. Windows系统,Tensorflow的Tensorboard工具细节问题

    随着跟着TensorFlow视频学习,学到Tensorboard可视化工具这里的时候. 在windows,cmd里面运行,tensorboard --logdir=你logs文件夹地址  这行代码,一 ...

  8. erlang工作总结

    总结下自己在做erlang的经验 1.不管什么样的情况下,一定要关注好函数的返回值再来使用,不知道返回值盲目的使用的话,不仅不能达到目标,而且不存在代码/报错提醒.得不偿失. 2.构思好自己的想法,定 ...

  9. 原来bug解决了,是这样的感觉

    终于过了,感觉好想哭啊,又莫名其妙的爽,原来这就是bug

  10. [Split The Tree][dfs序+树状数组求区间数的种数]

    Split The Tree 时间限制: 1 Sec  内存限制: 128 MB提交: 46  解决: 11[提交] [状态] [讨论版] [命题人:admin] 题目描述 You are given ...