高斯消元解异或方程组。学了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

bzoj3503: [Cqoi2014]和谐矩阵相关推荐

  1. bzoj 3503: [Cqoi2014]和谐矩阵(高斯消元)

    3503: [Cqoi2014]和谐矩阵 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 1101  Solved ...

  2. [CQOI2014]和谐矩阵

    嘟嘟嘟 遇到这种(看似)构造的题,我好像一般都做不出来-- 然而这题正解是高斯消元解异或方程组-- 首先我们容易列出式子a[i][j] ^ a[i - 1][j] ^ a[i + 1][j] ^ a[ ...

  3. bzoj3503【CQOI2014】和谐矩阵

    3503: [Cqoi2014]和谐矩阵 Time Limit: 10 Sec   Memory Limit: 128 MBSec   Special Judge Submit: 841   Solv ...

  4. 【BZOJ3503】【Cqoi2014】和谐矩阵 高斯消元,解异或方程组

    #include <stdio.h> int main() {puts("转载请注明出处");puts("地址:blog.csdn.net/vmurder/a ...

  5. JZOJ 3596. 【CQOI2014】和谐矩阵

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

  6. [暑假的bzoj刷水记录]

    (这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊  堆一起算了 隔一段更新一下.  7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...

  7. bzoj 乱刷计划 50/50

    前言 话说第一个板刷计划由于种种原因而告一段落了..其实那一版还有很多题想做,那就只能放一放了 附上效果图一张(几乎每一题都在我博客有题解): 打算 可以复习,重做自己做过的题,不局限于没做过的 乱刷 ...

  8. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

  9. linux系统数据库类型,linux系统下调度数据库类型资源库中的kettle job

    已经存在kettle的一个资源库enfo,在目录/works/wxj下面有一个job (testmailsuccess.kjb)如何实现手工在kettle外部执行此job和让系统每天定时的调用此job ...

最新文章

  1. CUDA Pro:通过向量化内存访问提高性能
  2. linux硬件配置软件,洞悉Linux系统软硬件配置
  3. JavaScript系列----面向对象的JavaScript(2)
  4. 莱维飞行matlab作图,基于莱维飞行和随机游动策略的灰狼算法
  5. centos6下时间同步(ntp)操作
  6. 日期相减 python_如果将excel的数字转化为日期(高级教程)
  7. 【聊透SpringMVC】java技术经理岗位职责
  8. [BZOJ1030][JSOI2007]文本生成器
  9. MongoDB实战-面向文档的数据(找到最合适的数据建模方式)
  10. 图解路由器:这玩意儿能连接全世界的网络?
  11. Android Contacts 联系人源码分析
  12. K8s问题【flannel一直重启问题,CrashLoopBackOff】
  13. 敲开bp神经网络之门(三,机器视觉斑点blob匹配中使用)
  14. 计算机电源MOD,电源全模组和非模组究竟有什么区别?
  15. java8 协程_Java8 异步编程—CompletableFuture
  16. 【OpenHarmony】napi基本用法----HelloWorld
  17. Android Google Map实例 - 在地图和卫星图之间切换(Android mapview)
  18. RTCP、一次装夹、双转台……这是一份五轴应用说明书
  19. 张一鸣“神隐”130天
  20. php教师评语,佛山这所中学爆红!教师用古文写评语,学子用文言文写反思

热门文章

  1. oracle+tns+01106,TNS-01106:Listener using listener name already been started
  2. java数组交集_java数组的交集和并集
  3. 【C++基础】模板参数与模板继承
  4. mcq 队列_人工智能| AI解决问题| 才能问题解答(MCQ)| 套装1
  5. 实验5 数据查询--连接查询
  6. pip安装deb_技术|如何在 Ubuntu 上安装 pip
  7. android游戏黑屏,第五人格游戏进不去黑屏解决办法
  8. C++函数名的修饰规则
  9. uvm 形式验证_IC设计职位详解之“数字验证工程师”就业必学课程
  10. 埃拉托斯特尼筛法 快速查找素数