bzoj3503
显然知道第一行就可以只道整个矩阵
但n<=40,搜索是不行的,我们设第一行为x1~xm
可以由轻易由第一行未知数推出第n+1行,这一步我们可以压成二进制位(因为只和奇偶有关)
显然n+1行必须是0,由此可以列方程高斯消元即可
var a,c:array[..,..] of longint;
b:array[..,..] of int64;
n,m,i,j:longint; procedure swap(var a,b:longint);
var c:longint;
begin
c:=a;
a:=b;
b:=c;
end; procedure gauss;
var i,j,k,p:longint;
begin
k:=;
for i:= to m do
begin
j:=k;
while (j<=m) and (a[j,i]=) do inc(j);
if (j>m) then continue;
if j<>k then
begin
for p:=i to m+ do
swap(a[k,p],a[j,p]);
end;
for j:=k+ to m do
if a[j,i]= then
begin
for p:=i to m+ do
a[j,p]:=a[j,p] xor a[k,p];
end;
inc(k);
end;
for i:=m downto do
begin
c[,i]:=a[i,m+];
if a[i,i]= then
begin
c[,i]:=;
continue;
end;
for j:=i+ to m do
if a[i,j]= then c[,i]:=c[,i] xor c[,j];
end;
end; begin
readln(n,m);
for i:= to m do
b[,i]:=int64() shl int64(i-); for i:= to n+ do
for j:= to m do
b[i,j]:=b[i-,j] xor b[i-,j+] xor b[i-,j-] xor b[i-,j]; for i:= to m do
for j:= to m do
if b[n+,i] and (int64() shl int64(j-))<> then a[i,j]:=; gauss;
for i:= to n do
for j:= to m do
c[i,j]:=c[i-,j] xor c[i-,j+] xor c[i-,j-] xor c[i-,j]; for i:= to n do
begin
for j:= to m- do
write(c[i,j],' ');
writeln(c[i,m]);
end;
end.
bzoj3503的更多相关文章
- BZOJ3503: [Cqoi2014]和谐矩阵
题解: 如果第一行的数知道了,我们就可以推出其他行的数. 那么如何判断第一行的数的一种填法是否合法呢?很简单,我们递推出m+1行的数,当且仅当这一行都是0时满足题意. 那么,我们就有了一种想法. 直接 ...
- 【高斯消元】BZOJ3503 [Cqoi2014]和谐矩阵
3503: [Cqoi2014]和谐矩阵 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1197 Solved: ...
- bzoj千题计划105:bzoj3503: [Cqoi2014]和谐矩阵(高斯消元法解异或方程组)
http://www.lydsy.com/JudgeOnline/problem.php?id=3503 b[i][j] 表示i对j是否有影响 高斯消元解异或方程组 bitset优化 #include ...
- bzoj3503 和谐矩阵
Description 我们称一个由0和1组成的矩阵是和谐的,当且仅当每个元素都有偶数个相邻的1.一个元素相邻的元素包括它本身,及他上下左右的4个元素(如果存在).给定矩阵的行数和列数,请计算并输出一 ...
- BZOJ3503:[CQOI2014]和谐矩阵(高斯消元,bitset)
Description 我们称一个由0和1组成的矩阵是和谐的,当且仅当每个元素都有偶数个相邻的1.一个元素相邻的元素包括它本 身,及他上下左右的4个元素(如果存在). 给定矩阵的行数和列数,请计算并输 ...
- [暑假的bzoj刷水记录]
(这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊 堆一起算了 隔一段更新一下. 7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...
随机推荐
- CSS FIXED porn javhd
CSS position property - W3Schools W3Schools › cssref › pr_class_position Definition and Usage. The p ...
- C++结构体对象数组的二进制方式读写
以一个学生信息的结构体数组为例. #include<iostream>#include<string>#include<fstream>using namespac ...
- Linux---vi编辑器必会操作
移动光标: (1)基本的上下左右:通过箭头按键控制 (2)跳到一行的末尾:键盘"end" (3)跳到一行的开头:键盘"home" (4)跳到最后一行:shift ...
- 三种读写XML的方法
XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...
- 51nod1079中国剩余定理
/** *中国剩余定理 */ #include<iostream> #include<cstdio> #include<map> #include<cstri ...
- bootstrap .col-md-6 文字居中问题处理
- poj 1818 ATP
ATP 题意:足球锦标赛使用二分的策略,每次淘汰剩下人的一半,并且数据表明:排名相差k(include)之内的运动员,胜负难料,否则排名前的必定战胜排名后的:问给定n(n = 2x, x∈N, n & ...
- SQL语句中使用条件逻辑
select name, sal, case when sal >= 4000 then 'Good' when sal <= 2000 then 'Bad' else 'Ok' end ...
- 微软Hololens学院教程-Hologram 212-Voice(语音)【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- mongodb 全文检索
MongoDB 全文检索 全文检索对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式. 这个过程类似于通过 ...