题目描述

一个布尔矩阵有一种奇偶性,即该矩阵所有行和所有列的和都是偶数。下面这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写布尔矩阵奇偶性相关推荐

  1. java矩阵连乘算法_使用java写的矩阵乘法实例(Strassen算法)

    Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...

  2. strassen算法java_使用java写的矩阵乘法实例(Strassen算法)_Java_软件编程

    Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...

  3. 矩阵生发java_使用java写的矩阵乘法实例(Strassen算法)

    Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...

  4. ZZULIOJ 1126: 布尔矩阵的奇偶性

    布尔矩阵的奇偶性 题目描述 一个布尔方阵具有奇偶均势特性,当且仅当 每行.每列总和为偶数,即包含偶数个1.如下面这个4*4的矩阵就具有奇偶均势特性: 1 0 1 0 0 0 0 0 1 1 1 1 0 ...

  5. java布尔矩阵程序_Java编程实现邻接矩阵表示稠密图代码示例

    我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之间的关系,则无法简单地用一维数组来表示了,我们可以用二维数组来表示,也就是一个矩阵形式的表示方法. 我们假设A是这个二维数组,那 ...

  6. zzulioj1126: 布尔矩阵的奇偶性

    1126: 布尔矩阵的奇偶性 题目描述 一个布尔方阵具有奇偶均势特性,当且仅当 每行.每列总和为偶数,即包含偶数个1.如下面这个4*4的矩阵就具有奇偶均势特性: 1 0 1 0 0 0 0 0 1 1 ...

  7. 学了编译原理能否用 Java 写一个编译器或解释器?

    16 个回答 默认排序​ RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...

  8. JAVA写出来的塔防能有多好玩?......真香!

    大家好,我是TJ 一个励志推荐10000款开源项目与工具的程序员 今天TJ君学到一个新名词 电子游戏阳痿,是指: 作为一个曾经爱玩游戏的人,在时间充裕.精力良好的状态下,依然不能把注意力集中在游戏上, ...

  9. java中布尔值做比较_Java中的三态布尔值

    java中布尔值做比较 我不时地错过Java中SQL的三值BOOLEAN语义. 在SQL中,我们有: TRUE FALSE UNKNOWN (也称为NULL ) 时不时地,我希望自己也可以用Java表 ...

  10. 用Java写一个简易五子棋游戏

    一. 程序基本思路: 1.写窗口.棋盘面板.控制面板: 2.绘制棋盘: 3.绘制棋子: 4.添加组件功能: 5.判断输赢: 6.悔棋: 7.复盘. 二.实际操作 1.创建窗口.添加面板 package ...

最新文章

  1. antv g6 禁止移动_antV G6流程图在Vue中的使用
  2. HDU-1541 Stars 树状数组
  3. python画海绵宝宝_一步一步教你画章鱼哥怎么画好看?教你学画海绵宝宝的章鱼哥简笔画!...
  4. oracle排序使用,很多中函数,不同的效果
  5. C++容器的insert()函数有以下三种用法: 最终*it=val;
  6. oracle删除实体,oracle 按条件删除、查询表
  7. 【Arduino】使用C#实现Arduino与电脑进行串行通讯
  8. steam一键授权工具_半个东的时间让你省了一个亿 Steam免费游戏一键领取
  9. IDEA连接mysql出现时区错误_idea连接数据库时区错误
  10. iphone屏蔽系统更新_iOS13屏蔽系统更新升级教程
  11. 每日算法系列【LeetCode 128】最长连续序列
  12. 45岁以后的IT人生
  13. python dict遍历_Python专题——详解enumerate与zip用法
  14. 最简单的c 语言打开串口程序,一个简单的串口程序
  15. opencv+海康威视网络摄像头实时预览+抓图(环境配置加程序)
  16. 【教程】鼠标右键新建添加RTF文档
  17. C#panel渐变绘制
  18. c语言第三章课后作业答案,C语言第三章习题带答案
  19. 数据库原理与应用实验九 视图的使用
  20. 默认关闭IDEA的注释doc的rendered view模式

热门文章

  1. 数学系列 (二)自然数、分数、小数、算数、代数
  2. 深度学习蓄势待发,即将“爆破”欧拉方程
  3. 传奇私服架设入门教程分享
  4. 网站服务器 网络速度测试,服务器访问速度怎么测试?
  5. PHP7.2手册(最新版)
  6. Unity在Hex与Color之间的颜色转换
  7. react-router-dom v6 使用
  8. 《东周列国志》第七十回 杀三兄楚平王即位 劫齐鲁晋昭公寻盟
  9. 交友 它能让霍金有一口伦敦腔,也在帮聋哑人重新开口说话
  10. C语言确定某年星期六,c语言 怎么算某年某月某日是星期几啊?