题目描述

我们有一个 n * m 的矩阵,
现在我会告诉你每一行和每一列的异或和
请求出任意一种可能的矩阵

数据范围

1<=n,m<=100
输入数据确保在int范围内

输入输出格式:

输入格式:

第一行:两个整数 n,m
第二行:n 个整数,表示每一行的异或和
第三行:m 个整数,表示每一列的异或和

输出格式:

一个满足以上条件的 n * m 的矩阵

样例

输入


输出

YES

解题思路

这是一道比较好的构造题,考虑构造好的矩阵转化成二进制位,相当于我们只需要构造一个01矩阵

那么我们先将左上角(n-1)*(m-1)先填上,后面直接利用异或和出解即可

AC Code

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<iostream>
#define ll long long
#define N 101
using namespace std;
int n,m,g[N][N],a[N],b[N];
int main() {
cin>>n>>m;
for(int i=; i<=n; ++i)cin>>a[i];
for(int i=; i<=m; ++i)cin>>b[i];
for(int i=; i<; ++i) {
for(int j=; j<n; ++j)
for(int k=; k<m; ++k)g[j][k]|=<<i;
int s1=,s2=;
for(int j=; j<n; ++j)
if(((m-)&)^((bool)(a[j]&(<<i))))s1^=,g[j][m]|=<<i;
for(int j=; j<m; ++j)
if(((n-)&)^((bool)(b[j]&(<<i))))s2^=,g[n][j]|=<<i;
if((((bool)(b[m]&(<<i)))^s1)!=(((bool)(a[n]&(<<i)))^s2)) {
puts("NO");
exit();
}
if(((bool)(b[m]&(<<i)))^s1)g[n][m]|=<<i;
}
puts("YES");
for(int i=; i<=n; ++i,puts(""))
for(int j=; j<=m; ++j)printf("%d ",g[i][j]);
return ;
}

CF1016D Vasya And The Matrix的更多相关文章

  1. CF 1042 E. Vasya and Magic Matrix

    E. Vasya and Magic Matrix http://codeforces.com/contest/1042/problem/E 题意: 一个n*m的矩阵,每个位置有一个元素,给定一个起点 ...

  2. Educational Codeforces Round 48 (Rated for Div. 2) D 1016D Vasya And The Matrix (构造)

    D. Vasya And The Matrix time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  3. codeforces1016 D. Vasya And The Matrix(思维+神奇构造)

    D. Vasya And The Matrix time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  4. D. Vasya And The Matrix(Educational Codeforces Round 48)

    D. Vasya And The Matrix time limit per test2 seconds memory limit per test256 megabytes inputstandar ...

  5. Vasya And The Matrix CodeForces - 1016D (思维+构造)

    Now Vasya is taking an exam in mathematics. In order to get a good mark, Vasya needs to guess the ma ...

  6. 【CF1016D】Vasya And The Matrix(构造)

    题意: 思路:构造方式见代码…… #include<cstdio> #include<cstring> #include<iostream> #include< ...

  7. CF1016 D. Vasya And The Matrix

    传送门 [http://codeforces.com/group/1EzrFFyOc0/contest/1016/problem/D] 题意 已知矩阵n行m列,以及每一行,每一列所有元素的异或,用 a ...

  8. CodeForces - 1016D Vasya And The Matrix

    题面在这里! 很明显二进制每一位都是无关的,所以可以先把原问题简化:给矩阵中的每个位置填入0/1,使得特定行/列有奇数个1,其他行/列有偶数个1. 一个比较好想的方法是对行和列 列出 n+m 个异或方 ...

  9. CF1042E Vasya and Magic Matrix

    感觉不会期望. 首先把所有格子按照权值从小到大排一下序,这样一共有$n * m$个元素,每个元素有三个属性$x, y, val$. 下文中的下标均为排序后的下标. 这样子我们就可以推出公式: $f_i ...

随机推荐

  1. php解决大文件断点续传

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...

  2. BZOJ 1034: [ZJOI2008]泡泡堂BNB 贪心+排序

    比较神奇的贪心 有点类似于田忌赛马. 如果我方最弱强于对面最弱,则直接最弱pk最弱. 如果我方最强强于对面最强,那么直接最强间pk. 否则,试着用我方最弱 pk 对方最强,看是否能打成平手. code ...

  3. vault 使用 中间ca 进行证书管理

    使用vault 进行pki 管理是很方便的,以前测试的都是由根证书进行证书签发,这次使用中间ca 进行签发 所以会有一个证书连 测试使用docker-compose 运行 环境准备 docker-co ...

  4. NVIDIA vGPU License服务器搭建详解

    当配置有vGPU虚拟机发起License授权请求,授权服务器会根据License中所包含的GRID License版本,加载不同的vGPU驱动(普通驱动和专业Quodra卡驱动).目前vPC和vApp ...

  5. Ubuntu 安装MySQL报共享库找不到

    错误信息1: ./mysqld: error : cannot open shared object file: No such file or directory 解决办法:安装改库 # apt-g ...

  6. SpringDataRedis的简单案例使用

    一.SpringDataRedis环境搭建 第一步.导入坐标 <!-- 缓存 --> <dependency> <groupId>redis.clients< ...

  7. 微信小程序之网络通信

    关于网络通信,这里我使用的是wx.request,官方代码示例如下: wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '', y: ...

  8. /usr/bin/xauth: file /home/user/.Xauthority does not exist

    错误信息如下: /usr/bin/xauth: file /home/user/.Xauthority does not exist 错误原因:是因为添加用户时没有授权对应的目录,仅仅执行了usera ...

  9. 2019_软工实践_Beta(2/5)

    队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 ?按照时间进度的安排进行相应的检查 展示GitHub当日代码/文档签入记 ...

  10. Python集成开发环境(IDE:Integrated Development Environment): PyCharm

    原文地址:https://www.runoob.com/python/python-install.html IDE下载安装 PyCharm 是由 JetBrains 打造的一款 Python IDE ...