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 ...
随机推荐
- 关于MYSQL知识点复习
关于MYSQL关联查询JOIN: https://www.cnblogs.com/withscorpion/p/9454490.html
- ES关闭打开索引
转载: https://mp.weixin.qq.com/s?__biz=MzAxMjY5NDU2Ng==&mid=2651862931&idx=1&sn=5834af8065 ...
- php composer 配置
目录 composer 配置 阿里云 Composer 全量镜像 换http源,更改配置不要使用https加密连接 诊断 compose 安装 多个php版本的composer使用 镜像源 Compo ...
- (0303)《计算机体系结构 量化研究方法》PDF
(01) https://blog.csdn.net/konghhhhh/article/details/106828402 存储器相关 (1) https://blog.csdn.net/iva_ ...
- seata数据源代理
seata数据源代理流程 1-SeataDataSourceAutoConfiguration 创建SeataAutoDataSourceProxyCreator对象,默认seata模式为AT 2-S ...
- IaaS--云虚拟机(三)(何恺铎《深入浅出云计算》笔记整理)
云虚拟机收费之省钱办法. [包年包月] 包年包月就是我们要提前预估好自己虚拟机的使用时间,比如半年.一年甚至三年,并提前支付相关款项的一种购买方式.这样的购买方式,通常能够给你带来较大幅度的折扣,帮你 ...
- JS 代码片段 / 预编译/预解析 /执行上下文/ECG/EC/ECS/GO/VO/AO
代码段概念 一个 script 就是一个代码段 在一个页面中可以有多个代码段 每一个代码段, 彼此独立的, 如果上面的代码段报错了, 不会影响下一个代码段 referenceError 引用错误 下面 ...
- 日志服务化&可视化&统计化
概述: ELK是Elasticsearch(简称es).Logstash.Kibana的简称,这三者是核心套件,但并非全部. Filebeat 日志采集工具 Logstash数据处理引擎 ela ...
- C#消息泵探索(二)
引言: 上篇文章里简单的解释了C#的消息泵原理,这里我们以winform为例详细地了解一下实现代码. 底层实现 [DllImport(ExternDll.User32, ExactSpelling ...
- AWS RedShift实战应用SQL大全及经验分享[持续更新]
文章目录 前言 - 关于RedShift 一.数据维护篇 1.1 表结构操作 1.2 数据添加与查询 1.3 数据修改与删除 1.4 事物操作 二.SQL结构篇 2.1 使用with封装代码 2.2 ...