code#5 P3 我有矩阵,你有吗?
我有矩阵,你有吗?
时间限制: 1.0 秒
空间限制: 128 MB
相关文件: 题目目录
题目描述
企鹅豆豆手里有两个 01 矩阵 A 和 B。他可以进行两种操作:
- 选择 A 矩阵的一行,然后把这一行的 0 变成 1,把 1 变成 0。
- 选择 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 我有矩阵,你有吗?的更多相关文章
- SQLite剖析之内核研究
先从全局的角度把握SQLite内核各个模块的设计和功能.SQLite采用了层次化.模块化的设计,而这些使得它的可扩展性和可移植性非常强.而且SQLite的架构与通用DBMS的结构差别不是很大,所以它对 ...
- SQLite入门与分析(三)---内核概述(1)
写在前面:从本章开始,我们开始进入SQLite的内核.为了能更好的理解SQLite,我先从总的结构上讨论一下内核,从全局把握SQLite很重要.SQLite的内核实现不是很难,但是也不是很简单.总的来 ...
- R语言实现SOM(自组织映射)模型(三个函数包+代码)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SOM自组织映射神经网络模型 的R语言实现 笔 ...
- 最小二乘法多项式拟合的Java实现
背景 由项目中需要根据一些已有数据学习出一个y=ax+b的一元二项式,给定了x,y的一些样本数据,通过梯度下降或最小二乘法做多项式拟合得到a.b,解决该问题时,首先想到的是通过spark mllib去 ...
- [SCOI2009] 迷路
题目类型:拆点, 矩阵快速幂 转化为矩阵快速幂,好题! 传送门:>Here< 题意:给出邻接矩阵,求\(1\)到\(N\)恰好长度为\(T\)的路径方案数 解题思路 如果题目给出的是一个\ ...
- Ten C++11 Features Every C++ Developer Should Use
原版:http://www.codeproject.com/Articles/570638/Ten-Cplusplus-Features-Every-Cplusplus-Developer 译版:ht ...
- @雅礼集训01/10 - T1@ matrix
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个矩阵.求它的所有子矩阵中本质不同的行的个数之和. inp ...
- 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 ...
- 无损卡尔曼滤波UKF(3)-预测-生成Sigma点
无损卡尔曼滤波UKF(3)-预测-生成Sigma点 1 选择创建Sigma点 A 根据 已知上一个时间戳迭代出来的 后验状态 x_{k|k} 和后验协方差矩阵 P_{k|k} 他们代表当前状态的分布. ...
随机推荐
- 利用Mongodb做地理空间查询
MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 前言 在移动开发中,经常会用到定位的功能,例如美团.饿了么.猫眼电影等的app ...
- HBuilder设置APP状态栏
一. 前言 状态栏就是手机屏幕最顶部的区域,包括了:信号.运营商.电量等信息.通常APP都有属于自己的色调风格,为了达到整体视觉美观,通常会设置状态栏和标题栏的色调设置成一致. 图例: 二.状态栏状态 ...
- Java实例---简单的上课管理系统
源码分析 Course.java package com.ftl.many2many; import java.util.*; public class Course { private int cr ...
- VS 2012 在 windows 8 中无法使用 Deubgger.Lunch() 对服务进行调试
找到了外文资料: Debugger.Launch() not displaying JIT debugger selection popup on Windows 8/8.1 If execu ...
- 一点二次插值、二点二次插值 ,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)); ...
- [原]外网访问用azure虚拟机搭建的网站
1.Ubuntu+Apache+PHP的环境搭建(此处省去了mysql的步骤) 在azure上搭建上述的开发环境和在本地PC搭建是一样的步骤,具体介绍请参看这里. 2.从外网访问 注意,这一步的前提是 ...
- scala当中的类
1.类的定义与创建 创建一个scala class来定义我们的一个类.类当中可以定义各种属性或者方法,或者函数都可以 class Person { //定义一个属性,叫做name的 ...
- 使用android studio检测app内存泄漏【转载】
Android开发中难免会遇到各种内存泄漏,如果不及时发现处理,会导致出现内存越用越大,可能会因为内存泄漏导致出现各种奇怪的crash,甚至可能出现因内存不足而导致APP崩溃. 一般检测android ...
- JavaScript正则表达式_常用的正则
一.检查邮政编码 var pattern = /[1-9][0-9]{5}/; //共 6 位数字,第一位不能为0 {5}表示后面5位0到9 var str = '224000'; alert(pa ...
- BZOJ 1562 变换序列 二分图匹配+字典序
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1562 题目大意: 思路: 逆序匹配,加边匹配的时候保持字典序小的先加入. 具体证明:h ...