CF1016D Vasya And The Matrix
题目描述
我们有一个 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的更多相关文章
- CF 1042 E. Vasya and Magic Matrix
E. Vasya and Magic Matrix http://codeforces.com/contest/1042/problem/E 题意: 一个n*m的矩阵,每个位置有一个元素,给定一个起点 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 【CF1016D】Vasya And The Matrix(构造)
题意: 思路:构造方式见代码…… #include<cstdio> #include<cstring> #include<iostream> #include< ...
- CF1016 D. Vasya And The Matrix
传送门 [http://codeforces.com/group/1EzrFFyOc0/contest/1016/problem/D] 题意 已知矩阵n行m列,以及每一行,每一列所有元素的异或,用 a ...
- CodeForces - 1016D Vasya And The Matrix
题面在这里! 很明显二进制每一位都是无关的,所以可以先把原问题简化:给矩阵中的每个位置填入0/1,使得特定行/列有奇数个1,其他行/列有偶数个1. 一个比较好想的方法是对行和列 列出 n+m 个异或方 ...
- CF1042E Vasya and Magic Matrix
感觉不会期望. 首先把所有格子按照权值从小到大排一下序,这样一共有$n * m$个元素,每个元素有三个属性$x, y, val$. 下文中的下标均为排序后的下标. 这样子我们就可以推出公式: $f_i ...
随机推荐
- php解决大文件断点续传
核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. * 如何分片: * 如何合成一个文件: * 中断了从哪个分片开 ...
- BZOJ 1034: [ZJOI2008]泡泡堂BNB 贪心+排序
比较神奇的贪心 有点类似于田忌赛马. 如果我方最弱强于对面最弱,则直接最弱pk最弱. 如果我方最强强于对面最强,那么直接最强间pk. 否则,试着用我方最弱 pk 对方最强,看是否能打成平手. code ...
- vault 使用 中间ca 进行证书管理
使用vault 进行pki 管理是很方便的,以前测试的都是由根证书进行证书签发,这次使用中间ca 进行签发 所以会有一个证书连 测试使用docker-compose 运行 环境准备 docker-co ...
- NVIDIA vGPU License服务器搭建详解
当配置有vGPU虚拟机发起License授权请求,授权服务器会根据License中所包含的GRID License版本,加载不同的vGPU驱动(普通驱动和专业Quodra卡驱动).目前vPC和vApp ...
- Ubuntu 安装MySQL报共享库找不到
错误信息1: ./mysqld: error : cannot open shared object file: No such file or directory 解决办法:安装改库 # apt-g ...
- SpringDataRedis的简单案例使用
一.SpringDataRedis环境搭建 第一步.导入坐标 <!-- 缓存 --> <dependency> <groupId>redis.clients< ...
- 微信小程序之网络通信
关于网络通信,这里我使用的是wx.request,官方代码示例如下: wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '', y: ...
- /usr/bin/xauth: file /home/user/.Xauthority does not exist
错误信息如下: /usr/bin/xauth: file /home/user/.Xauthority does not exist 错误原因:是因为添加用户时没有授权对应的目录,仅仅执行了usera ...
- 2019_软工实践_Beta(2/5)
队名:955 组长博客:点这里! 作业博客:点这里! 组员情况 组员1(组长):庄锡荣 过去两天完成了哪些任务 文字/口头描述 ?按照时间进度的安排进行相应的检查 展示GitHub当日代码/文档签入记 ...
- Python集成开发环境(IDE:Integrated Development Environment): PyCharm
原文地址:https://www.runoob.com/python/python-install.html IDE下载安装 PyCharm 是由 JetBrains 打造的一款 Python IDE ...