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 ...
随机推荐
- css3中-webkit是什么意思
在CSS样式中很多样式名前缀都带有'-webkit-',但在CSS提供的API中查询不到这些样式名. 原因:CSS3中新增了一些属性,针对不同的浏览器,规定其内核名称让它们可以对这些新增属性进行解析. ...
- ubuntu18.04 20.04 22.04 环境下的QGIS安装
Linux下的QGIS安装 截至到2022年8月份,最新的qgis版本是 QGIS (3.26.x Buenos Aires) 参考网址:https://qgis.org/en/site/foruse ...
- ansible笔记第四章(jinj2的使用与role的使用)
一.jinj2概述 1.jinja2模板与Ansible有什么关系 Ansible通常会使用Jlinja2模板来修改被管理主机的配置文件.例如给10台远程主机都装上httpd服务,但是要求每个服务器的 ...
- The 17th Zhejiang Provincial Collegiate Programming Contest B.Bin Packing Problem
题意 给定n个物品,和一个容量为C的桶 需要求出为了装下这些物品,分别使用首次适应算法(FF).最佳适应算法(BF)需要的桶的数量 \(n \leq 10^6\) 思路 BF:容易想到可以用set维护 ...
- JavaScript的知识点整理
最近写了一个员工管理作业,暴露了一些问题就是. JS的查找标签的时候,要确定返回的是DOM对象还是数组,document对象可以是任意dom对象,将查询范围限制在当前dom对象, 1.直接查找标签 d ...
- String和StringBuffer与StringBuilder的区别
1.String.StringBuffer.StringBuilder都不可以被继承,在JDK中它们都被定义为final类. 2.执行速度:StringBuilder > StringBuffe ...
- startActivity 新开一个Activity
private void startActivity(Intent intent) { Context ctx = ApplicationController.getTopActivity(); if ...
- eclipse和sts的版本对应
https://blog.51cto.com/9534366/2340508 http://www.mamicode.com/info-detail-2298022.html https://gith ...
- linux系统过滤ip地址总结
Perl模块用法 安装Perl模块 # 官网地址 https://metacpan.org/pod/Regexp::Common # 下载地址 https://cpan.metacpan.org/au ...
- RayLink 远控软件又推出 2 个重磅宝藏功能免费用
你有没有在远程办公时,担心他人偷窥电脑?以致于保密性资料或私密信息,遭到泄露.创意被剽窃......又或是遇到过邻座同事屏幕前明明没人,鼠标箭头却自个浏览起网页的惊悚画面? 如果你有上述情况,建议使用 ...