首页 > 编程语言 > NOI / 1.8编程基础之多维数组 04:错误探测

NOI / 1.8编程基础之多维数组 04:错误探测

时间:2023-04-09 20:13:55浏览次数:51  
标签:输出 NOI 04 样例 1.8 元素 矩阵 输入 符合条件

描述
给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。
你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。
"改变矩阵元素"的操作定义为0变成1或者1变成0。

输入
输入n + 1行,第1行为矩阵的大小n(0 < n < 100),以下n行为矩阵的每一行的元素,元素之间以一个空格分开。
输出
如果矩阵符合条件,则输出OK;
如果矩阵仅改变一个矩阵元素就能符合条件,则输出需要改变的元素所在的行号和列号,以一个空格分开。
如果不符合以上两条,输出Corrupt。
样例输入

样例输入1
4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1

样例输入2
4
1 0 1 0
0 0 1 0
1 1 1 1
0 1 0 1

样例输入3
4
1 0 1 0
0 1 1 0
1 1 1 1
0 1 0 1

样例输出

样例输出1
OK

样例输出2
2 3

样例输出3
Corrup

题意
输入n + 1行,如果矩阵符合条件,则输出OK;如果矩阵仅改变一个矩阵元素就能符合条件,则输出需要改变的元素所在的行号和列号,以一个空格分开。如果不符合以上两条,输出Corrupt。
解题思路
输入n,若矩阵符合条件,则输出OK;若矩阵仅改变一个矩阵元素就能符合条件,则输出改变的元素所在的行号和列号(r c)否则,若不符合以上两条,输出Corrupt。
代码实现

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[100][100]={0},n,i,j,r,c,rows=0,columns=0;
	cin>>n;	
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			cin>>a[i][j];
			a[0][j]=(a[0][j]+a[i][j])%2;
			a[i][0]=(a[i][0]+a[i][j])%2;
		}
	}
	for(i=1;i<=n;i++){
		if(a[i][0]>0){
			r=i;
			rows++;	
		}
	}
	for(j=1;j<=n;j++){
		if(a[0][j]>0){
			c=j;
			columns++;
		}
	}
	if(rows==0&&columns==0)
		cout<<"OK"<<endl;
	else if(rows==1&&columns==1)
		cout<<r<<" "<<c<<endl;	
	else{
		cout<<"Corrupt"<<endl;
	}
	return 0;
}

标签:输出,NOI,04,样例,1.8,元素,矩阵,输入,符合条件
From: https://www.cnblogs.com/adnss/p/17300929.html

相关文章

  • 230409 What is a Battery Management System
    WelcometotheStoffelSystemsInsightsvideoseries.I'mEricStoffel,PresidentofStoffelSystems.Inthisseries,we'lldiscussbatterymanagementsystemsasusedinlithium-ionbatterypacks.Let'sbeginwithanintroductiontowhatabat......
  • Ubuntu22.04办公环境初始设置记录
    1前言这周末刚从Windows办公环境切换到Ubuntu22.04,有些东西还是比较折腾,记录一下便于以后查找。2.安装时的分区设置从一块完整的新硬盘安装Ubuntu单系统时,只需要以下分区:ESP分区(EFISystemPartition),设为200MB即可,是GPT分区表存储的位置。UEFI引导的系统都需要这个分区。......
  • JavaWeb-24课-filter-2023-04-09
    Servlet类,没有乱码处理packagecom.feijian.servlet;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;public......
  • 今日总结0407
    python,Java,C++的异同1.Python是一种高级、解释型、面向对象的编程语言,语法简洁,易于学习和使用;Java和C++则是编译型语言。Python的执行效率相对较低,但编写速度快,适合快速开发原型、简单程序或自动化脚本;Java和C++则可以用于开发大型系统和复杂的应用程序。2.Python是一种动态语......
  • 【230409PH-1】如左图所示,两个相同的容器内装有质量相等的不同液体,则等高的a、b两点的
    ......
  • 23.04.06_为博客设置https
    title:为博客设置https协议categories: -博客优化date:2023-04-06url_dir:Blog_optimizationurl_name:setting_https博客优化内容http协议的网站总是显示不安全,为了开启小绿锁,在这里准备部署https协议。我的博客是hexo架构,部署在阿里云上的。在阿里云首页中选择产......
  • JavaWeb-JSP-JSTL c foreach -2023-04-09
    <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><%@pageimport="java.util.ArrayList"%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><html>&l......
  • 人月神话阅读笔记04
    四月份的阅读笔记它来啦!1、为什么巴比伦塔会失败?巴比伦塔项目是继诺亚方舟之后的又一大工程项目,同时也是一个彻头彻尾的失败的项目,那么,这么大的工程为什么是一个彻底的失败呢?是它没有足够的人手?没有先进的技术?没有没有质量好的材料?不!都不是,他就是单纯地缺乏组织上的交流而已。......
  • JavaWeb-JSP JSTL标签 -2023-04-09
    <%--CreatedbyIntelliJIDEA.User:AdministratorDate:2023/4/9Time:15:10TochangethistemplateuseFile|Settings|FileTemplates.--%><%@pagecontentType="text/html;charset=UTF-8"language="java"%>&l......
  • flask---day04()
    上节回顾#1蓝图 -第一步:导入-第二步:实例化得到对象,可以指定static和templates-第三步:app中注册蓝图,注册蓝图时,可以指定前缀-第四步:使用蓝图,注册路由,注册请求扩展#2g对象 -当次请求的全局对象,在当次请求中可以放值和取值-跟session的区......