bzoj 3603
考虑转化问题:一个点相邻元素中有偶数个$1$等价于一个点与相邻元素异或和为$0$
于是直接列出异或方程组求解即可
注意由于要求不允许出现全0矩阵,因此如果有自由元直接给成$1$
贴代码:
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <queue>
#include <stack>
#include <bitset>
using namespace std;
bitset <1605> a[1605];
int n,m,N;
int ret[1605];
int to[5][2]={{0,0},{1,0},{0,1},{-1,0},{0,-1}};
int idx(int x,int y)
{
return (x-1)*m+y;
}
bool check(int x,int y)
{
return x>0&&x<=n&&y>0&&y<=m;
}
void Gauss()
{
for(int i=1;i<=N;i++)
{
int temp=i;
while(!a[temp][i]&&temp<=N)temp++;
if(temp==N+1)
{
for(int j=i+1;j<=N;j++)a[i][j]=0;
a[i][N+1]=1;
continue;
}
swap(a[i],a[temp]);
for(int j=i+1;j<=N;j++)if(a[j][i])a[j]^=a[i];
}
for(int i=N;i>=1;i--)
{
ret[i]=a[i][N+1];
for(int j=i+1;j<=N;j++)if(a[i][j])ret[i]^=ret[j];
}
}
int main()
{
scanf("%d%d",&n,&m),N=n*m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int k=0;k<5;k++)
{
int toi=i+to[k][0],toj=j+to[k][1];
if(check(toi,toj))a[idx(i,j)][idx(toi,toj)]=1;
}
}
}
Gauss();
for(int i=1;i<=n;i++,printf("\n"))for(int j=1;j<=m;j++)printf("%d ",ret[idx(i,j)]);
return 0;
}
bzoj 3603的更多相关文章
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- 【sdoi2013】森林 BZOJ 3123
Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...
- 【清华集训】楼房重建 BZOJ 2957
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
- 【splay】文艺平衡树 BZOJ 3223
Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 ...
- bzoj 刷水
bzoj 3856: Monster 虽然是sb题,,但是要注意h可能<=a,,,开始忘记判了WA得很开心. #include <iostream> #include <cst ...
- BZOJ 2243: [SDOI2011]染色 [树链剖分]
2243: [SDOI2011]染色 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 6651 Solved: 2432[Submit][Status ...
随机推荐
- Python的入门学习之Day 9——from“夜曲编程”
Day 9 time: 2021.8.6. 昨天复习了第一章"数据与运算".第二章"条件判断"的相关重点,今天就感觉得心应手了.今天上新的内容是关于新一章节&q ...
- 来自StateOfJS调查:2022年JavaScript生态圈趋势报告(前端早读课)
原文 我这里记录些觉得有趣的. Promise.allSettled() 完成所有输入的方法,no matter what,返回对应的状态和值/原因,这对想知道所有返回状态的业务很好用:使用async ...
- gopher必读文章
Getting Started with Go Programminghttps://www.programiz.com/golang/getting-startedHow to Write Go C ...
- params的使用
今天在写vue的JavaScript的时候有个地方需要传很多参数,自己写不出来,求助 我的博博 后拿到神奇代码: 神奇代码中有params,俺自作聪明,以为他是一个json的数据,所以自己改了个名字 ...
- POD一些概念
以FAQ的方式来加强对POD的理解: 1.重启了一台机器,之后运行了13天,我看到pod的age并不是我以为的5d,而是远远大于5d.这是因为pod的age,主要是关注uid有没有变化,没有则不会更新 ...
- ubuntu常用操作
Ubuntu22.04 server 创建随操作系统自动启动: 创建rc-local.service cp /lib/systemd/system/rc.-local.service /etc/sys ...
- git 命令 使用记录
这是ider 在pull 代码是报的异常大概意思是本机有未处理的合并可是点击view files都之前删除的一些文件 这种问题可以使用一下命令 git fetch --all && g ...
- Nuget管理器下载插件出现依赖性相关无法正确下载
话不多说,直接上图: 上面我采用的是PM控制台下载EntityFrameWork最新版本,之所以要这样做,是因为利用Nuget管理器好像不咋管用呀,一直说这个依赖那个依赖啥的,还不如最底层 用命令控制 ...
- C++ primer 5th 第二章 变量和基本类型 阅读笔记
第二章 变量和基本类型 第一节 基本内置类型 C++标准规定了算术类型尺寸的最小值,同时允许编译器赋予这些类型更大的尺寸. 比如: 类型 含义 最小尺寸 bool 布尔类型 未定义 wchar_t 宽 ...
- 【文献阅读】Nonlinear controller design of a ship autopilot
(1)文章工作 The main goal here is to design a proper and efficient controller for a ship autopilot based ...