题意:构造一个$n*m$矩阵 使得每个元素和上下左右的xor值=0

题解:设第一行的每个元素值为未知数 可以依次得到每一行的值

   然后把最后一行由题意条件 得到$m$个方程 高斯消元解一下 bitset写起来比较方便

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <bitset>
using namespace std;
const int MAXN = 45; int n, m;
bitset<MAXN> a[MAXN][MAXN];
bitset<MAXN> b[MAXN];
int ans[MAXN]; int dx[] = {-1, -1, -1, -2};
int dy[] = {-1, 0, 1, 0}; bool check(int x, int y) {
if(x >= 1 && x <= n && y >= 1 && y <= m) return true;
return false;
} void gauss() {
for(int i = 1, now = 1; i <= m && now <= m; now++) {
for(int j = i; j <= m; j++) {
if(b[j][now]) {
std::swap(b[j], b[i]);
break;
}
}
if(!b[i][now]) ans[now] = 1;
for(int j = i + 1; j <= m; j++) {
if(b[j][now]) {
b[j] ^= b[i];
}
}
i++;
} for(int i = m; i >= 1; i--) {
for(int j = i + 1; j <= m; j++) {
if(b[i][j]) {
ans[i] ^= ans[j];
}
}
}
} int main() {
scanf("%d%d", &n, &m); for(int i = 1; i <= m; i++) a[1][i][i] = 1;
for(int i = 2; i <= n; i++)
for(int j = 1; j <= m; j++) {
for(int k = 0; k < 4; k++) {
int nx = i + dx[k];
int ny = j + dy[k];
if(check(nx, ny)) {
a[i][j] ^= a[nx][ny];
}
}
} for(int i = 1; i <= m; i++) {
b[i] = a[n][i];
if(n - 1 >= 1) b[i] ^= a[n - 1][i];
if(i - 1 >= 1) b[i] ^= a[n][i - 1];
if(i + 1 <= m) b[i] ^= a[n][i + 1];
}
gauss(); for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
int res = 0;
for(int t = 1; t <= m; t++) {
if(a[i][j][t]) res ^= ans[t];
}
if(j != m) printf("%d ", res);
else printf("%d\n", res);
}
}
return 0;
}

P3164 [CQOI2014]和谐矩阵(高斯消元 + bitset)的更多相关文章

  1. BZOJ3503:[CQOI2014]和谐矩阵(高斯消元,bitset)

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

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

    偶数个相邻, 以n*m个点为变量, 建立异或方程组然后高斯消元... O((n*m)^3)复杂度看起来好像有点大...但是压一下位的话就是O((n*m)^3 / 64), 常数小, 实际也跑得很快. ...

  3. P3164 [CQOI2014]和谐矩阵

    P3164 [CQOI2014]和谐矩阵 乱写能AC,暴力踩标程(雾 第一眼 诶这题能暴力枚举2333!!! 第二眼 诶这题能高斯消元!那只需要把每个位置的数给设出来就能够列方程了!然后就可以\(O( ...

  4. [SDOI2010]外星千足虫 题解 高斯消元+bitset简介

    高斯消元 + bitset 简介: 高斯消元其实就是以加减消元为核心求唯一解.这道题还是比较裸的,可以快速判断出来.我们将每一只虫子看作一个未知数,这样根据它给出的 m 组方程我们可以高斯消元得出每一 ...

  5. bzoj 1923 [Sdoi2010]外星千足虫(高斯消元+bitset)

    1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 634  Solved: 397[Submit][Status ...

  6. BZOJ_1923_[Sdoi2010]外星千足虫_高斯消元+bitset

    BZOJ_1923_[Sdoi2010]外星千足虫_高斯消元 Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结 ...

  7. 矩阵&&高斯消元

    矩阵运算: \(A\times B\)叫做\(A\)左乘\(B\),或者\(B\)右乘\(A\). 行列式性质: \(1.\)交换矩阵的两行(列),行列式取相反数. \(2.\)某一行元素都\(\ti ...

  8. POJ 1830 开关问题 【01矩阵 高斯消元】

    任意门:http://poj.org/problem?id=1830 开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1 ...

  9. 【Luogu】P3389高斯消元模板(矩阵高斯消元)

    题目链接 高斯消元其实是个大模拟qwq 所以就着代码食用 首先我们读入 ;i<=n;++i) ;j<=n+;++j) scanf("%lf",&s[i][j]) ...

随机推荐

  1. 【Linux】shell脚本实现多并发

    情景 shell脚本的执行效率虽高,但当任务量巨大时仍然需要较长的时间,尤其是需要执行一大批的命令时.因为默认情况下,shell脚本中的命令是串行执行的.如果这些命令相互之间是独立的,则可以使用&qu ...

  2. 强制删除 Terminating 状态的pod

    [root@k8s-master coredns]# kubectl get podNAME                     READY   STATUS        RESTARTS   ...

  3. ObjectMapper将josn字符串转化为List

    一.利用ObjectMapper将json字符串转为List Student.java package objectmapper; import java.io.Serializable; publi ...

  4. 解决maven中某些依赖无法下载,手动安装Maven依赖

    <!--先下载jar包,然后在仓库中手动安装,下面是遇到的两个例子--> <!--第一个--> mvn install:install-file -Dfile=D:\kaptc ...

  5. canvas星空背景特效+CSS旋转相册学习

    今天在看帖子的时候,看到了个有趣的css旋转相册,刚好之前做了一个星空背景dome,这里给大家分享下代码: 旋转相册参考:https://blog.csdn.net/gitchatxiaomi/art ...

  6. 论super().__init__()的用法

    当我们调用 super() 的时候,实际上是实例化了一个 super 类. super 是个类,既不是关键字也不是函数等其他数据结构,该对象就是专门用来访问父类中的属性的(严格按照继承的关系). -- ...

  7. 飞机大战(1)--添加logo和加载动画

    注:以下代码都是用scratch 3.0版本编写 素材链接: 链接:https://pan.baidu.com/s/1sXqeZVuFgVTYT0OtqxXilw 提取码:1126 一.背景添加 导入 ...

  8. Redis 实战 —— 07. 复制、处理故障、事务及性能优化

    复制简介 P61 关系型数据库通常会使用一个主服务器 (master) 向多个从服务器 (slave) 发送更新,并使用从服务器来处理所有读请求. Redis 也采用了同样的方法实现自己的复制特性,并 ...

  9. Let’s Encrypt/Certbot移除/remove/revoke不需要的域名证书

    1.首先确认你的证书不再需要,如果有必要,请执行下面的命令进行备份 cp /etc/letsencrypt/ /etc/letsencrypt.backup -r 2.撤销证书然后删除证书 [root ...

  10. 时序数据库 Apache-IoTDB 源码解析之元数据索引块(六)

    上一章聊到 TsFile 索引块的详细介绍,以及一个查询所经过的步骤.详情请见: 时序数据库 Apache-IoTDB 源码解析之文件索引块(五) 打一波广告,欢迎大家访问 IoTDB 仓库,求一波 ...