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 ...
随机推荐
- 微信小程序弹窗
wxml <view class="content"> <button bindtap="popSuccessTest">成功提示弹窗& ...
- java 数组遍历(方法内部的代码)
//数组遍历(依次输出数组中的每一个元素)二维数组: int[][] arr={{1,2},{3,4,5},{6,7}}; for(int i=0;i<arr.length;i++){ for( ...
- hibernate之一对多关系
1. 什么是关联(association) 1.1 关联指的是类之间的引用关系.如果类A与类B关联,那么被引用的类B将被定义为类A的属性.例如: public class A{ private B b ...
- python中的base64加密解密
介绍 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RFC2049,上面有MIME的详细规范. ...
- maven依赖 dependency中scope=compile 和 provided区别
问题再现 上次这边朋友问我一个问题,就是他们在pom.xml中的dependency中,看到有一些是provided的情况,比如如下: <dependency> <groupId&g ...
- IIS 7中添加FTP站点并设置指定用户访问
1. 开启 FTP 和 IIS 服务功能: 2. 添加新用户: 打开计算机管理界面: 展开“本地用户与组”: 邮件点击“用户”->点击“创建新用户”: 在创建新用户对话框输入用户 ...
- python list 和 tuple详解
list------------------------------------------------------------------------ Python内置的一种数据类型是列表:list ...
- 009 SpringBoot+Swagger的使用
一:概述 1.说明 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务. 总体目标是使客户端和文件系统作为服务器以同样的速度来更新. 文件的方法 ...
- 推荐:使用 Anaconda 工具搭建并管理 Python 环境
https://www.anaconda.com/distribution/#download-section 官网下载地址 https://mirror.tuna.tsinghua.edu.cn/ ...
- 【Linux】两台服务器ssh免密登录
背景: 有些场景可能用到两台服务器ssh免密登录.比如服务器自动化部署 开始准备: 服务器A linux ip: 192.168.1.1 服务器B linux ip: 192.168.1. ...