bzoj3503: [Cqoi2014]和谐矩阵

高斯消元解异或方程组。学了bitset。对比如下

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define REP(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define clr(x,c) memset(x,c,sizeof(x))
int read(){int x=0;char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) x=x*10+c-'0',c=getchar();return x;
}
const int nmax=50;
const int inf=0x7f7f7f7f;
int xx[5]={0,0,0,1,-1};
int yy[5]={0,1,-1,0,0};
int a[nmax*nmax][nmax*nmax],ans[nmax*nmax],n,m;
int id(int x,int y){return (x-1)*m+y;
}
void Gauss(int N,int M){REP(i,1,N){int j;for(j=i;j<=N&&!a[j][i];j++)if(j>N) continue;if(j!=i) REP(k,i,M) swap(a[i][k],a[j][k]);REP(j,i+1,N) if(a[j][i]) REP(k,i,M) a[j][k]^=a[i][k];}dwn(i,N,1){if(!a[i][i]) ans[i]=1;else{REP(j,i+1,N) a[i][M]^=(ans[j]*a[i][j]);ans[i]=a[i][M];}}
}
int main(){n=read(),m=read();REP(i,1,n) REP(j,1,m) REP(k,0,4) {int tx=i+xx[k],ty=j+yy[k];if(tx&&ty&&tx<=n&&ty<=m) a[id(i,j)][id(tx,ty)]=1;}Gauss(n*m,n*m+1);REP(i,1,n) {REP(j,1,m) printf("%d ",ans[id(i,j)]);printf("\n");}return 0;
}
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<bitset>
using namespace std;
#define REP(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define clr(x,c) memset(x,c,sizeof(x))
int read(){int x=0;char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) x=x*10+c-'0',c=getchar();return x;
}
const int nmax=2505;;
const int inf=0x7f7f7f7f;
int xx[5]={0,0,0,1,-1};
int yy[5]={0,1,-1,0,0};
int ans[nmax],n,m;
bitset<nmax>a[nmax];
int id(int x,int y){return (x-1)*m+y;
}
void Gauss(int N,int M){REP(i,1,N){int j;for(j=i;j<=N&&!a[j][i];j++)if(j>N) continue;if(j!=i) swap(a[j],a[i]);REP(j,i+1,N) if(a[j][i]) a[j]^=a[i];}dwn(i,N,1){if(!a[i][i]) ans[i]=1;else{REP(j,i+1,N) if(a[i][j]) ans[i]^=ans[j];//a[i][M]^=ans[j];//a[i][M]^=(ans[j]*a[i][j]);}}
}
int main(){n=read(),m=read();REP(i,1,n*m) a[i].reset();REP(i,1,n) REP(j,1,m) REP(k,0,4) {int tx=i+xx[k],ty=j+yy[k];if(tx&&ty&&tx<=n&&ty<=m) a[id(i,j)][id(tx,ty)]=1;}Gauss(n*m,n*m+1);REP(i,1,n) {REP(j,1,m) printf("%d ",ans[id(i,j)]);printf("\n");}return 0;
}

  

3503: [Cqoi2014]和谐矩阵

Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special Judge
Submit: 877  Solved: 397
[Submit][Status][Discuss]

Description

我们称一个由0和1组成的矩阵是和谐的,当且仅当每个元素都有偶数个相邻的1。一个元素相邻的元素包括它本
身,及他上下左右的4个元素(如果存在)。
给定矩阵的行数和列数,请计算并输出一个和谐的矩阵。注意:所有元素为0的矩阵是不允许的。

Input

输入一行,包含两个空格分隔的整数m和n,分别表示矩阵的行数和列数。

Output


输出包含m行,每行n个空格分隔整数(0或1),为所求矩阵。测试数据保证有解。

Sample Input

4 4

Sample Output

0 1 0 0
1 1 1 0
0 0 0 1
1 1 0 1

数据范围
1 <=m, n <=40

HINT

Source

鸣谢Ljcc提供Spj

[Submit][Status][Discuss]

转载于:https://www.cnblogs.com/fighting-to-the-end/p/5697878.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

她偏爱雏菊一样的淡黄色_为什么开源项目(非常)偏爱新用户,以及您可以采取什么措施...

她偏爱雏菊一样的淡黄色by Filip Hracek由Filip Hracek 为什么开源项目(非常)偏爱新用户&#xff0c;以及您可以采取什么措施 (Why open source projects (sadly) favor new users, and what you can do about it) Every now and then, all developer products (SDKs, framewo…

linux 脚本 expected,Linux | shell与expect结合使用

在linux操作系统下&#xff0c;使用脚本自动化&#xff0c;一般由两种方案。方案一&#xff1a;telnetftp方案二&#xff1a;sshscpexpect。以下主要使用sshscpexpect为例进行说明使用方式。第一步&#xff1a;安装expect&#xff1a;yum -y install expect第二步&#xff1a;验…

[Swift]LeetCode246.对称数 $ Strobogrammatic Number

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

C++中父类的虚函数必需要实现吗?

一、情景 C中父类的虚函数必需要实现吗&#xff1f; class Vir{ public:virtual void tryVirtual(); };class CVir:public Vir{ public:void tryVirtual(){std::cout<<"CVir"<<std::endl;} };二、说明 &#xff08;1&#xff09;在main函数中&#xff0c…

解决新浪微博API调用限制 突破rate_limit_status瓶颈

新浪微博开放平台API的调用和TWITTER接口一样&#xff0c;都是受限的&#xff0c;以小时为单位进行限定。 他有两个限制原则 1.用户不登录基于IP的限制&#xff0c;每小时1000次 2.用户登录了基于用户的限制&#xff0c;每小时1000次 如果应用是用户不登录的那么就是对IP进行限…

chrome前端开发工具_精通Chrome开发人员工具:更高级别的前端开发技术

chrome前端开发工具by Ben Edelstein通过本爱德斯坦 You may already be familiar with the basic features of the Chrome Developer Tools: the DOM inspector, styles panel, and JavaScript console. But there are a number of lesser-known features that can dramatica…

linux给文件夹图标,linux – 如何在GNOME中以编程方式设置自定义文件夹图标?

我终于想出了如何做到这一点&#xff01;这是一个在标准Gnome环境中工作的Python脚本&#xff1a;#!/usr/bin/env pythonimport sysfrom gi.repository import Gioif len(sys.argv) not in (2, 3):print Usage: {} FOLDER [ICON].format(sys.argv[0])print Leave out ICON to u…

jQuery序列化表单为JSON对象

[html] view plaincopy <form id"myform"> <table> <tr> <td>姓名:</td> <td> <input type"text" name"name" /> </td> </tr> …

sys模块

与python解释器交互的模块 sys.argv 命令行参数List&#xff0c;第一个元素是程序本身路径 sys.exit(n) 退出程序&#xff0c;正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径…

李开复:年轻人该比谁更拼命吗?

李开复:年轻人该比谁更拼命吗&#xff1f; IT职场 cricode 4个月前 (04-02) 951℃ 0评论 我年轻的时候是最不注重睡眠的&#xff0c;我记得在我读大学的时候每次要考试就因为平时玩耍太多了&#xff0c;每次要考试的时候就会灌咖啡&#xff0c;有时候一个晚上可以喝十杯咖啡不…

linux命令无视错误,llinux 的一些命令和错误

sudo tar -zxvf ./hadoop-2.6.0.tar.gz -C /usr/local # 解压到/usr/local中source ~/.bashrc # 使变量设置生效sudo useradd -m hadoop -s /bin/bash 创建新用户sudo adduser hadoop sudo 可为 hadoop 用户增加管理员权限sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件…

假设检验方差未知_设计云数据库时如何处理未知数并做出假设

假设检验方差未知by Rick Mak麦瑞克(Rick Mak) 设计云数据库时如何处理未知数并做出假设 (How to handle unknowns and make assumptions when designing a cloud database) 场景&#xff1a;鞋盒还是社交应用&#xff1f; (Scenario: Shoebox or social app?) Say you’re a…

SQL校验优化

我的思路只能查当前的&#xff1a; ----校验此行订单是否已导入&#xff0c;若已导入则提示订单号并Return -- IF EXISTS (SELECT 1 FROM DOC_Order_Header b LEFT JOIN tblData a -- ON -- a.ConsigneeID b.Consig…

nat64 dns64 linux 内核支持,搭建NAT64/DNS6实现IPv4/v6转换

NAT64采用tayga实现&#xff0c;DNS64采用bind9.8实现。1 平台搭建平台为ubuntu12.04 Desktop版本。正常安装即可。2 NAT64(tayga)2.1 安装在终端模式下输入sudo apt-get install tayga2.2 配置2.2.1 相关设置sudo gedit /etc/tayga.conf按照说明配置&#xff0c;目前实现方案不…

React学习笔记(持续更新)

2.2页面加载过程 1.资源加载过程&#xff1a;URL->DNS查询->资源请求->浏览器解析 ①URL结构&#xff1a;http://www.hhh.com:80/getdata?pid1#title[协议://域名&#xff1a;端口/路径?参数#哈希] ②DNS查询&#xff1a;浏览器<--&#xff08;ip&#xff09;&am…

2年工作经验进 初创公司_沟通是关键:通过两家初创公司获得的成长经验教训+找工作...

2年工作经验进 初创公司by Niki Agrawal通过尼基阿格劳瓦尔(Niki Agrawal) 沟通是关键&#xff1a;通过两家初创公司获得的成长经验教训找工作 (Communication is key: growth lessons learned through two startups a job hunt) It’s been a crazy two years. I founded tw…

Hibernate问题浅析

1、什么是SessionFactory&#xff1f;什么是Session&#xff1f;httpsession和hibernate的session的有什么区别&#xff1f;SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理&#xff0c;并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactor…

Oracle中SQL语句学习五(统计分组语句group by和having)

oracle&#xff08;41&#xff09; 在 应用系统开发中&#xff0c;进行需要统计数据库中的数据&#xff0c;当执行数据统计时&#xff0c;需要将表中的数据进行分组显示&#xff0c;在统计分组中是通过group by子句、分组函数、having子句共同实现的。其中group by子句用于指定…

linux系统去吧,要开始另一个linux操作系统的尝试了,说说我以前的ubuntu吧

我想&#xff0c;除了尝试一下ubuntu的神奇魅力的同时&#xff0c;我应该去体验一下RedHat的神奇吧&#xff01;马上就要告别ubuntu了&#xff0c;我想把我的部分使用经历和大家分享分享&#xff01;首先&#xff0c;无论是ubuntu8.04、10.04还是10.1的效果都是很好的&#xff…

课程编码查询_付出还是不付出:生活中最好的事情(例如编码课程)是否免费?...

课程编码查询by Rick West由里克韦斯特(Rick West) 付出还是不付出&#xff1a;生活中最好的事情(例如编码课程)是否免费&#xff1f; (To pay or not to pay: are the best things in life — like coding courses — free?) Recently, I’ve been working on a project tha…