用java写布尔矩阵奇偶性
题目描述
一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这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)来使它具有奇偶性。如果不可能,这个矩阵就被认为是破坏了。
输入
输入包含多组测试数据。每组测试数据的第一行是一个整数n(1<=n<=100),代表该矩阵的大小。在接下来的行中,每行有n个整数。矩阵是由0或1构成的。n=0时,输入结束。
输出
对于每组输入,如果这个矩阵具有奇偶性,则输出“OK”。如果奇偶性能通过只修改该矩阵中的一位来建立,那么输出“Change bit (i,j)”,这里i和j是被修改的这位的行号和列号。否则,输出“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
代码:
import java.util.Scanner;
public class Matrix {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int sum = 0,sum1=0;
int s1=0,s2=0,x=0,y=0;
int n = in.nextInt();
int[][] arr = new int[n][n];
int[] arr1 = new int[n];
int[] arr2 = new int[n];
if (n>=1&&n<=100) {
for(int i=0;i<arr.length;i++) { //给二维数组赋值
for (int j = 0; j < arr.length; j++) {
arr[i][j] =in.nextInt();
sum=sum+arr[i][j]; //累加行的总和
}
arr1[i]=sum; //行总和的数组
sum = 0;
}
for(int i=0;i<arr.length;i++) {
for (int j = 0; j < arr.length; j++) {
sum1+=arr[j][i]; //累加列的总和
}
arr2[i]=sum1; //列的总和的数组
sum1 = 0;
}
for (int i = 0; i <arr1.length; i++) {
if (arr1[i]%2!=0) {
s1++;
x=i; //记录横坐标
}
if (arr2[i]%2!=0) { //是否加起来为奇数的
s2++;
y=i; //记录纵坐标
}
}
if(s1+s2==0) {
System.out.println("OK");
}else if(s1==1&&s2==1){
System.out.println("Change bit ("+(x+1)+","+(y+1)+")");
}else {
System.out.println("Corrupt");
}
}
}
}
提交题目时,错误了,怀疑是内存跟时间超了,大神们有什么解决方法吗,求带
用java写布尔矩阵奇偶性相关推荐
- java矩阵连乘算法_使用java写的矩阵乘法实例(Strassen算法)
Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...
- strassen算法java_使用java写的矩阵乘法实例(Strassen算法)_Java_软件编程
Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...
- 矩阵生发java_使用java写的矩阵乘法实例(Strassen算法)
Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...
- ZZULIOJ 1126: 布尔矩阵的奇偶性
布尔矩阵的奇偶性 题目描述 一个布尔方阵具有奇偶均势特性,当且仅当 每行.每列总和为偶数,即包含偶数个1.如下面这个4*4的矩阵就具有奇偶均势特性: 1 0 1 0 0 0 0 0 1 1 1 1 0 ...
- java布尔矩阵程序_Java编程实现邻接矩阵表示稠密图代码示例
我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之间的关系,则无法简单地用一维数组来表示了,我们可以用二维数组来表示,也就是一个矩阵形式的表示方法. 我们假设A是这个二维数组,那 ...
- zzulioj1126: 布尔矩阵的奇偶性
1126: 布尔矩阵的奇偶性 题目描述 一个布尔方阵具有奇偶均势特性,当且仅当 每行.每列总和为偶数,即包含偶数个1.如下面这个4*4的矩阵就具有奇偶均势特性: 1 0 1 0 0 0 0 0 1 1 ...
- 学了编译原理能否用 Java 写一个编译器或解释器?
16 个回答 默认排序 RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...
- JAVA写出来的塔防能有多好玩?......真香!
大家好,我是TJ 一个励志推荐10000款开源项目与工具的程序员 今天TJ君学到一个新名词 电子游戏阳痿,是指: 作为一个曾经爱玩游戏的人,在时间充裕.精力良好的状态下,依然不能把注意力集中在游戏上, ...
- java中布尔值做比较_Java中的三态布尔值
java中布尔值做比较 我不时地错过Java中SQL的三值BOOLEAN语义. 在SQL中,我们有: TRUE FALSE UNKNOWN (也称为NULL ) 时不时地,我希望自己也可以用Java表 ...
- 用Java写一个简易五子棋游戏
一. 程序基本思路: 1.写窗口.棋盘面板.控制面板: 2.绘制棋盘: 3.绘制棋子: 4.添加组件功能: 5.判断输赢: 6.悔棋: 7.复盘. 二.实际操作 1.创建窗口.添加面板 package ...
最新文章
- antv g6 禁止移动_antV G6流程图在Vue中的使用
- HDU-1541 Stars 树状数组
- python画海绵宝宝_一步一步教你画章鱼哥怎么画好看?教你学画海绵宝宝的章鱼哥简笔画!...
- oracle排序使用,很多中函数,不同的效果
- C++容器的insert()函数有以下三种用法: 最终*it=val;
- oracle删除实体,oracle 按条件删除、查询表
- 【Arduino】使用C#实现Arduino与电脑进行串行通讯
- steam一键授权工具_半个东的时间让你省了一个亿 Steam免费游戏一键领取
- IDEA连接mysql出现时区错误_idea连接数据库时区错误
- iphone屏蔽系统更新_iOS13屏蔽系统更新升级教程
- 每日算法系列【LeetCode 128】最长连续序列
- 45岁以后的IT人生
- python dict遍历_Python专题——详解enumerate与zip用法
- 最简单的c 语言打开串口程序,一个简单的串口程序
- opencv+海康威视网络摄像头实时预览+抓图(环境配置加程序)
- 【教程】鼠标右键新建添加RTF文档
- C#panel渐变绘制
- c语言第三章课后作业答案,C语言第三章习题带答案
- 数据库原理与应用实验九 视图的使用
- 默认关闭IDEA的注释doc的rendered view模式