布尔矩阵
来源:互联网 发布:java 比较文本相似度 编辑:程序博客网 时间:2024/04/30 22:32
题目描述
一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这4×4的矩阵就具有奇偶性:
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1
它所有行的和是2,0,4,2。它所有列的和是2,2,2,2。
现请你编写一个程序,读入这个矩阵并检查它是否具有奇偶性。如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0修改为1,把1修改为0)来使它具有奇偶性。如果不可能,这个矩阵就被认为是破坏了。
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1
它所有行的和是2,0,4,2。它所有列的和是2,2,2,2。
现请你编写一个程序,读入这个矩阵并检查它是否具有奇偶性。如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0修改为1,把1修改为0)来使它具有奇偶性。如果不可能,这个矩阵就被认为是破坏了。
输入描述
输入包含多组测试数据。每组测试数据的第一行是一个整数n(1<=n<=100),代表该矩阵的大小。在接下来的行中,每行有n个整数。矩阵是由0或1构成的。n=0时,输入结束。
输出描述
对于每组输入,如果这个矩阵具有奇偶性,则输出“OK”。如果奇偶性能通过只修改该矩阵中的一位来建立,那么输出“Change bit (i,j)”,这里i和j是被修改的这位的行号和列号。否则,输出“Corrupt”。
输入样例
41 0 1 00 0 0 01 1 1 10 1 0 141 0 1 00 0 1 01 1 1 10 1 0 141 0 1 00 1 1 01 1 1 10 1 0 10
输出样例
OKChange bit (2,3)Corrupt
提示
AC代码如下:
#include<iostream>#include<cmath>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int a[110][110];int main(){ int n,i,j; while(scanf("%d",&n)!=EOF) { if(n==0) break; for(i=1;i<=n;i++) for(j=1;j<=n;j++) cin>>a[i][j]; int flag=0,flag2=0; int sum; int r,l; for(i=1;i<=n;i++) { sum=0; for(j=1;j<=n;j++) { sum+=a[i][j]; } if(sum%2==0) flag++; else { flag2++; r=i; //标记要改的行; } } if(flag2>1) { printf("Corrupt\n"); //在这个矩阵中若有超过一行的奇数,那么就无法改变; continue; } flag2=0; for(j=1;j<=n;j++) { sum=0; for(i=1;i<=n;i++) { sum+=a[i][j]; } if(sum%2==0) flag++; else { flag2++; l=j; //标记要改的列; } } if(flag2>1) { printf("Corrupt\n"); //在这个矩阵中若有超过一列的奇数,那么也将无法改变; continue; } if(flag==2*n) { printf("OK\n"); continue; } printf("Change bit (%d,%d)\n",r,l); } return 0;}
阅读全文
0 0
- 布尔矩阵
- 布尔矩阵
- 布尔矩阵
- 1026:布尔矩阵
- XYNUOJ 1122 布尔矩阵
- zju acmclub 1026:布尔矩阵
- 1126: 布尔矩阵的奇偶性
- 布尔矩阵—C语言
- 1126: 布尔矩阵的奇偶性
- 1126: 布尔矩阵的奇偶性
- C语言求解布尔矩阵的布尔积运算
- hrbust 1994 神奇的布尔矩阵
- 浙江大学ACM俱乐部 1026布尔矩阵
- zzuli OJ 1126: 布尔矩阵的奇偶性
- & | 布尔
- hrbust 1997 又是一个神奇的布尔矩阵
- Codeforce 375B 给定5000的布尔矩阵 求最大面积的全1子矩阵
- Tricks(四十七)—— 布尔矩阵(0-1矩阵)取反
- Linux时间更新
- YII2.0 php 定时任务使用
- 用select处理带外数据
- 【算法题】度度熊回家
- FPGA的软核、硬核以及固核的概念
- 布尔矩阵
- JDBC入门
- Android Studio debug使用release的签名
- Stanford CS224n: Natural Language Processing with Deep Learning 课程笔记
- fxml入门
- Linux下利用NFS实现多服务器间的目录共享及文件同步
- Java小案例——交换两个数值的三种方法
- SharedPreferences实现数据存储
- 语言基础模块-三级菜单作业