CF 1475 F . Unusual Matrix 思维
传送门
大体题意:给定两个矩阵a和b,给定一个操作,这个操作可以将a矩阵任意一行或者任意一列取反,问能否将a变成b。
乍一看不是一个很难的题,但是想我这样思维不好的还是看不出来什么东西。让后看到了题解前几句话 “ 固定第一行 ” 瞬间就有了思路。我们可以想想如果我们把a通过列变换,将第一行变成一样的,那么其他行必须通过行变换,不然就会改变第一列已经相等的值。这样只需要检查除了第一行之外的每一行能否通过异或一行使得a变成b,那么就比较简单啦。
//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=1010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n;
int a[N][N],b[N][N];bool check()
{for(int i=1;i<=n;i++){if(a[1][i]==b[1][i]) continue;for(int j=1;j<=n;j++) a[j][i]^=1;}for(int i=2;i<=n;i++){int f=a[i][1]^b[i][1];for(int j=1;j<=n;j++) if(a[i][j]^b[i][j]!=f) return false;}return true;
}int main()
{// ios::sync_with_stdio(false);
// cin.tie(0);int _; scanf("%d",&_);while(_--){scanf("%d",&n);for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%1d",&a[i][j]);for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%1d",&b[i][j]);if(check()) puts("YES"); else puts("NO");}return 0;
}
/**/
CF 1475 F . Unusual Matrix 思维相关推荐
- Educational Codeforces Round 9 F. Magic Matrix 最小生成树
F. Magic Matrix 题目连接: http://www.codeforces.com/contest/632/problem/F Description You're given a mat ...
- CF1475F Unusual Matrix
Unusual Matrix - 洛谷 大意: 给你两个 n×n 的01矩阵,你可以进行如下两种操作: 垂直xor:选中一列,将这一列的每个元素分别进行xor 水平xor:选中一行,将这一行的每个元素 ...
- Codeforces Round #495 (Div. 2) D. Sonya and Matrix[思维构造]
D. Sonya and Matrix 题意:给定t个数,要求构造一个矩阵,以0为中心,以菱形的方法依次+1扩展 思路: 假设0的坐标为(x,y),则有 max=n-x+m-y max已知, n,m枚 ...
- CF 1642 F. Two Arrays 随机 + sosdp
文章目录 题意 思路 传送门 题意 给你nnn个长度为mmm的数组,每个数组都有一个价值wiw_iwi,让你选出两个数组他们没有交集且价值和最大,如果没有输出−1-1−1. 2≤n≤1e5,1≤m≤ ...
- CF 1635 D. Infinite Set 思维 + 二进制
文章目录 题意 思路 传送门 题意 给你一个集合SSS,初始集合内含有nnn个数,让后按照一下三个规则无限的向集合中添加数: 对于所有的1≤i≤n,x=ai1\le i\le n,x=a_i1≤i≤n ...
- Codeforces Round #617 (Div. 3) F. Berland Beauty 思维
传送门 文章目录 题意: 思路: 题意: 给定一棵树,再给定若干两点最短路之间边权的最小值,让你给树的边权赋值,使得满足给定的条件,如果不存在输出−1-1−1. 思路: 观察一个性质,加入经过这条边的 ...
- cf 1504 F. Flip the Cards
F. Flip the Cards 题意: 这个题你也可以看看,就是一个卡片正反两个数,n个卡片在桌子上摆好,你可以任意移动卡片的位置,也可以翻转卡片(翻转一次消耗1点),最终使得卡片的正面为升序,反 ...
- 2017.10.17 CF#441 F题 思考记录
.果然没有题解做题感觉是不一样的. 这个F题可能是最像往常B题的题了(往常B题就是dp,还一般都不难) 首先这个是|,所以|的数越多,它一定是不降的 那么合法的一定是一个数到一个数往后的数所构成的所有 ...
- cf 1450 F The Struggling Contestant
link 题意:给一长度为n的数组A,求以排列p满足A[pi],A[pi-1]不同,定义每一个排列的权值为abs(pi-pi-1) >1 的i的个数.输出满足条件排列的最小权值.无解输出-1 思 ...
最新文章
- python response.json()报错_Django JsonResponse json格式报错 解决Django响应JsonResponse返回json格式数据报错问题...
- 凭什么还能独吞iPhone 8的“芯”?
- 查看电脑电池损耗的命令
- B站开源自研动漫超分辨率模型,助力动漫UGC视频高清化
- React开发(139):react中onref
- python函数在传参的时候,到底在传些什么?
- makefile教程链接
- python批处理代码_Python文件夹批处理操作代码实例
- 毕业多年没稳定的收入...大龄转行做自动化测试,现在已经快年薪30W
- (八)mybatis之映射器
- 扩展欧几里得算法推导
- 如何搭建自己的云盘然后进行资源共享?——可道云版
- Cisco Jabber 多个高危漏洞风险通告
- Spring Boot application properties或application yml相关配置
- Julia中的numerator()函数
- 批量梯度下降和随机梯度下降法的缺点
- 数字IC设计工程师笔试面试经典100题
- python爬虫十二:初步使用Scrapy框架爬取数据
- 重磅!实在智能首创“智能融合拾取”技术!
- matlab归一化和标准化
热门文章
- 我背着女朋友,用 Python 偷偷抓取了她的行踪
- mysql普通标转分区表_MySQL分区表到普通表互转
- python distplot 图_Python可视化23 |seaborn.distplot公司单变量分布图(直方图|核密度图),23seaborndistplot...
- 二面京东,面试官直接问我JVM,我心里一阵暗爽~
- C语言删掉无关变量无输出,C语言变量类型与输出控制用法实例教程
- ajax中迭代是什么意思,Ajax 局部刷新迭代器的内容
- 下学期计算机教学工作计划,初中信息技术下学期教学工作计划
- java富文本如何转义_富文本编辑器wangEditor中转义字符的问题
- linux把终端嵌入桌面,在Ubuntu Linux桌面上嵌入终端窗口
- html下拉菜单的子目录,html - 带有下拉菜单的子菜单的垂直下拉菜单 - 堆栈内存溢出...