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 内存限制: ...
随机推荐
- 爬虫学习--使用百度api---天气
#coding:utf-8#version:0.1#note:该即用API能查询指定城市的空气质量指数,但城市数量有限,截止2015年3月26日,只能查到全国161个城市的. import urlli ...
- 17、SQL基础整理(事务)
事务 事务==流程控制 确保流程只能成功或者失败,若出现错误会自动回到原点 例: begin tran insert into student values('111','王五','男','1999- ...
- Excel文件的导出操作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- WCF之服务说明
实质:服务说明实质上就是服务相关的一些信息. 1.服务端代码添加了如下黄色代码: class Program { static void Main(string[] args) { //创建一个Ser ...
- alt text 与 tooltip区别
在做工具的Accessiblity测试时, 对于image对象,一直分不清它的alt属性与tooltip属性的区别与用法, 从网上查了下, 比较认同这样的观点: alt属性: alternative ...
- 在Azure中的Ubuntu中安装Open edX
最近,由于工作原因,在Azure上的Ubuntu虚拟机中安装了Open edX 实例,安装过程遇到了不少问题, 在从网上找答案的过程中,学习到了不同的知识. 注:若Ubuntu虚拟机Setup在Glo ...
- magento产品成功添加到购物车后跳转到不同页面 添加 add to cart 按钮
1 添加产品到购物车成功后是跳转到购物车页面或不跳转.这个在后台可以设置 system -> configuration -> After Adding a Product Redirec ...
- toLocaleString
- 理解 %IOWAIT (%WIO)
%iowait 是 “sar -u” 等工具检查CPU使用率时显示的一个指标,在Linux上显示为 %iowait,在有的Unix版本上显示为 %wio,含义都是一样的,这个指标常常被误读,很多人把它 ...
- [转]国内良心DNS汇集
http://www.changbizi.net/archives/664.html 长鼻子实验室 湖北电信的DNS服务器真是烂到掉渣,曾经有一年我给他们的售后打电话到人家都记住我的手机号码,但是DN ...