我有矩阵,你有吗?

 

时间限制: 1.0 秒

空间限制: 128 MB

相关文件: 题目目录

题目描述

企鹅豆豆手里有两个 01 矩阵 A 和 B。他可以进行两种操作:

  1. 选择 A 矩阵的一行,然后把这一行的 0 变成 1,把 1 变成 0。
  2. 选择 A 矩阵的一列,然后把这一列的 0 变成 1,把 1 变成 0。

现在他想知道能不能把 A 矩阵通过以上操作变成 B 矩阵。保证 A 矩阵和 B 矩阵的大小一致。

输入格式

从标准输入读入数据。

每个测试点只有一组数据。

输入的第一行包含两个正整数 n 和 m,表示 A 矩阵的行数,保证 n≤103,m≤103。 接下来 n 行,每行 m 个由空格隔开的整数,表示矩阵 A。保证矩阵中只有 0 或者 1。 接下来 n 行,每行 m 个由空格隔开的整数,表示矩阵 B。保证矩阵中只有 0 或者 1。

输出格式

输出到标准输出。

如果矩阵 A 通过以上两种操作可以变成矩阵 B,输出 Koyi,否则输出 Budexing

思路:

在做这道题之前,建议大家先看一下

[SCOI2005]扫雷

这两道题在思路上有着相似之处

我们可以将01矩阵转化一下,生成一个新的矩阵

如果两个矩阵在该位置相同,那么新矩阵这个位置的值为1

否则为0

我们分别假定第一个位置被修改过,没有被修改过

分别跑一次

因为要求合法,所以当第一行状态被确定时,后面的状态就全部被确定了

暴力n*m地扫就行

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<bitset>
#include<queue>
#include<cstdlib>
#include<algorithm>
#define rii register int i
#define rij register int j
using namespace std;
int ys[][],mb[][],now[][],cs[][];
int m,n;
inline bool cs1()
{
for(rii=;i<=m;i++)
{
if(now[][i]==)
{
for(rij=;j<=n;j++)
{
now[j][i]=(now[j][i]+)%;
}
}
}
for(rii=;i<=n;i++)
{
int pd=now[i][];
for(rij=;j<=m;j++)
{
if(now[i][j]!=pd)
{
return false;
}
}
}
return true;
}
inline bool cs2()
{
for(rii=;i<=m;i++)
{
if(now[][i]==)
{
for(rij=;j<=n;j++)
{
now[j][i]=(now[j][i]+)%;
}
}
}
for(rii=;i<=n;i++)
{
int pd=now[i][];
for(rij=;j<=m;j++)
{
if(now[i][j]!=pd)
{
return false;
}
}
}
return true;
}
int main()
{
// freopen("2.in","r",stdin);
scanf("%d%d",&n,&m);
for(rii=;i<=n;i++)
{
for(rij=;j<=m;j++)
{
scanf("%d",&ys[i][j]);
}
}
for(rii=;i<=n;i++)
{
for(rij=;j<=m;j++)
{
scanf("%d",&mb[i][j]);
}
}
for(rii=;i<=n;i++)
{
for(rij=;j<=m;j++)
{
if(ys[i][j]!=mb[i][j])
{
now[i][j]=;
cs[i][j]=;
}
}
}
if(cs1()==true)
{
puts("Koyi");
return ;
}
if(cs2()==true)
{
puts("Koyi");
return ;
}
puts("Budexing");
return ;
}

code#5 P3 我有矩阵,你有吗?的更多相关文章

  1. SQLite剖析之内核研究

    先从全局的角度把握SQLite内核各个模块的设计和功能.SQLite采用了层次化.模块化的设计,而这些使得它的可扩展性和可移植性非常强.而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对 ...

  2. SQLite入门与分析(三)---内核概述(1)

    写在前面:从本章开始,我们开始进入SQLite的内核.为了能更好的理解SQLite,我先从总的结构上讨论一下内核,从全局把握SQLite很重要.SQLite的内核实现不是很难,但是也不是很简单.总的来 ...

  3. R语言实现SOM(自组织映射)模型(三个函数包+代码)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SOM自组织映射神经网络模型 的R语言实现 笔 ...

  4. 最小二乘法多项式拟合的Java实现

    背景 由项目中需要根据一些已有数据学习出一个y=ax+b的一元二项式,给定了x,y的一些样本数据,通过梯度下降或最小二乘法做多项式拟合得到a.b,解决该问题时,首先想到的是通过spark mllib去 ...

  5. [SCOI2009] 迷路

    题目类型:拆点, 矩阵快速幂 转化为矩阵快速幂,好题! 传送门:>Here< 题意:给出邻接矩阵,求\(1\)到\(N\)恰好长度为\(T\)的路径方案数 解题思路 如果题目给出的是一个\ ...

  6. Ten C++11 Features Every C++ Developer Should Use

    原版:http://www.codeproject.com/Articles/570638/Ten-Cplusplus-Features-Every-Cplusplus-Developer 译版:ht ...

  7. @雅礼集训01/10 - T1@ matrix

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个矩阵.求它的所有子矩阵中本质不同的行的个数之和. inp ...

  8. 139. Word Break 以及 140.Word Break II

    139. Word Break Given a non-empty string s and a dictionary wordDict containing a list of non-empty  ...

  9. 无损卡尔曼滤波UKF(3)-预测-生成Sigma点

    无损卡尔曼滤波UKF(3)-预测-生成Sigma点 1 选择创建Sigma点 A 根据 已知上一个时间戳迭代出来的 后验状态 x_{k|k} 和后验协方差矩阵 P_{k|k} 他们代表当前状态的分布. ...

随机推荐

  1. 利用Mongodb做地理空间查询

    MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 前言 在移动开发中,经常会用到定位的功能,例如美团.饿了么.猫眼电影等的app ...

  2. HBuilder设置APP状态栏

    一. 前言 状态栏就是手机屏幕最顶部的区域,包括了:信号.运营商.电量等信息.通常APP都有属于自己的色调风格,为了达到整体视觉美观,通常会设置状态栏和标题栏的色调设置成一致. 图例: 二.状态栏状态 ...

  3. Java实例---简单的上课管理系统

    源码分析 Course.java package com.ftl.many2many; import java.util.*; public class Course { private int cr ...

  4. VS 2012 在 windows 8 中无法使用 Deubgger.Lunch() 对服务进行调试

    找到了外文资料:   Debugger.Launch() not displaying JIT debugger selection popup on Windows 8/8.1   If execu ...

  5. 一点二次插值、二点二次插值 ,matlab

    syms f x a b c; f(x)=3*x^4-4*x^3-12*x^2; q(x)=a*x^2+b*x+c; %二点二次插值 x=[-1.2 -0.8]; ff=diff(diff(f)); ...

  6. [原]外网访问用azure虚拟机搭建的网站

    1.Ubuntu+Apache+PHP的环境搭建(此处省去了mysql的步骤) 在azure上搭建上述的开发环境和在本地PC搭建是一样的步骤,具体介绍请参看这里. 2.从外网访问 注意,这一步的前提是 ...

  7. scala当中的类

    1.类的定义与创建 创建一个scala class来定义我们的一个类.类当中可以定义各种属性或者方法,或者函数都可以     class Person {       //定义一个属性,叫做name的 ...

  8. 使用android studio检测app内存泄漏【转载】

    Android开发中难免会遇到各种内存泄漏,如果不及时发现处理,会导致出现内存越用越大,可能会因为内存泄漏导致出现各种奇怪的crash,甚至可能出现因内存不足而导致APP崩溃. 一般检测android ...

  9. JavaScript正则表达式_常用的正则

     一.检查邮政编码 var pattern = /[1-9][0-9]{5}/; //共 6 位数字,第一位不能为0 {5}表示后面5位0到9 var str = '224000'; alert(pa ...

  10. BZOJ 1562 变换序列 二分图匹配+字典序

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1562 题目大意: 思路: 逆序匹配,加边匹配的时候保持字典序小的先加入. 具体证明:h ...