OpenJudge计算概论-错误探测
- /*========================================================================
- 错误探测
- 总时间限制: 1000ms 内存限制: 65536kB
- 描述
- 给出由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。
- 你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。
- "改变矩阵元素"的操作定义为0变成1,1变成0。
- 输入
- 包含多个测试数据。每个测试数据有多行,第一行为矩阵的大小n(n < 100),以下n行为矩阵的值。
- 输入以0结束。
- 输出
- 如果矩阵符合条件,则输出OK
- 如果矩阵仅改变一个矩阵元素就能符合条件,则输出Change bit (x,y),其中x和y为该元素的坐标
- 如果不符合以上两条,输出Corrupt
- 样例输入
- 4
- 1 0 1 0
- 0 0 0 0
- 1 1 1 1
- 0 1 0 1
- 4
- 1 0 1 0
- 0 0 1 0
- 1 1 1 1
- 0 1 0 1
- 4
- 1 0 1 0
- 0 1 1 0
- 1 1 1 1
- 0 1 0 1
- 0
- 样例输出
- OK
- Change bit (2,3)
- Corrupt
- 分析:
- 输入数组时不需存储数组的数据;
- 输入时同时计算并用两个一维数组存储每一行、每一列的和 ;
- 注意求和前要对两个一维数组清零;
- 统计奇数个1的行和奇数个1的列 的数量rowN和colN;
- 假如rowN==colN==1说明有且仅有一行和一列含有奇数个1
- (这个情况只需要把该行和该列交叉处的值改变一下即可,所以结果就是Change bit (2,3))
- 假如 rowN==colN==0,则是OK
- 假如是其他情况则是Corrupt
- 注意:输出案例Change bit (2,3)在左括号'(' 前是有一个空格的。少了这个空格,
- 提交时格式错误的。
- 另外:分析一下输入输出案例第二组数据发现,题目默认数组的下标从1开始。
- ==========================================================================*/
- #include<stdio.h>
- int main()
- {
- int n,i,j,t;
- int rowSum[],colSum[];//分别存储每一行、每一列的和
- int rowN,colN;//存储有奇数个1的行数、列数
- int x,y;
- freopen("6.in","r",stdin);
- freopen("result.out","w",stdout);
- scanf("%d",&n);
- while(n!=)
- {
- for(i=;i<;i++)//清空求和数组
- {
- rowSum[i]=;
- colSum[i]=;
- }
- //输入的同时计算每一行每一列的和
- for(i=;i<n;i++)
- {
- for(j=;j<n;j++)
- {
- scanf("%d",&t);
- rowSum[i]=rowSum[i]+t;
- colSum[j]=colSum[j]+t;
- }
- }
- rowN=;
- colN=;
- for(i=;i<n;i++)//检测奇数个1的行、奇数个1的列
- {
- if(rowSum[i]&)
- {
- rowN++;
- x=i;
- }
- if(colSum[i]&)
- {
- colN++;
- y=i;
- }
- }
- //判断结果
- if(rowN==&&colN==)
- {
- printf("Change bit (%d,%d)\n",x+,y+);
- }
- else if(rowN==&&colN==)
- {
- printf("OK\n");
- }
- else
- printf("Corrupt\n");
- //输入下一组的阶数
- scanf("%d",&n);
- }
- return ;
- }
OpenJudge计算概论-错误探测的更多相关文章
- OpenJudge计算概论-取石子游戏
OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...
- Openjudge计算概论——数组逆序重放【递归练习】
/*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...
- OpenJudge计算概论-计算书费
/*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...
- OpenJudge计算概论-最高的分数
/*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...
- OpenJudge计算概论-比饭量【枚举法、信息数字化】
/*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 655 ...
- Openjudge计算概论-角谷猜想
/*===================================== 角谷猜想 总时间限制: 1000ms 内存限制: 65536kB 描述 所谓角谷猜想,是指对于任意一个正整数,如果是奇数 ...
- OpenJudge计算概论-字符串最大跨距
/*====================================================================== 字符串最大跨距 总时间限制: 1000ms 内存限制: ...
- Openjudge计算概论-求序列中的众数
/*===================================== 求序列中的众数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个长度为N的整数序列 (不多于128 ...
- OpenJudge计算概论-计算鞍点
/*======================================================================== 计算鞍点 总时间限制: 1000ms 内存限制: ...
随机推荐
- swift系统学习第三章
第九节:结构体-sturt //: Playground - noun: a place where people can play import UIKit /* swift学习第九节 结构体:st ...
- GCD时间轴
__block int timeout=60; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queue(DISPAT ...
- 解决DatePicker中Appbar icon缺失
最近写了个小程序,用到了Microsoft.Phone.Controls.Toolkit里的DatePicker控件,引入以后发现AppBar里两个button的图标不显示.如下图: 们是“完成”和“ ...
- C# <%@ Register %>指令
将别名与命名空间及类名关联起来,以便在自定义服务器控件语法中使用简明的表示法. <%@ register tagprefix="tagprefix" namespace=&q ...
- markdown to html
/************************************************************************* * markdown to html * 说明: ...
- js中this和回调方法循环-我们到底能走多远系列(35)
我们到底能走多远系列(35) 扯淡: 13年最后一个月了,你们在13年初的计划实现了吗?还来得及吗? 请加油~ 主题: 最近一直在写js,遇到了几个问题,可能初入门的时候都会遇到吧,总结下. 例子: ...
- CentOS6下搭建OpenVPN服务器
• OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可以方便地在家庭.办公场所.住宿酒店等不同网 ...
- java的getClass()函数
Java反射学习 所谓反射,可以理解为在运行时期获取对象类型信息的操作.传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代 ...
- HDU 5944 暴力
Fxx and string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)T ...
- Qt 串口编程学习1
1.测试设备:USB 转串口 将RX和TX短接 2.开发环境:windows 1安装Qt for windows 2测试,新建项目编译 出现问题 Cannot find file: C:\Docume ...