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 ...
随机推荐
- 问题解决:使用angularjs、ionic框架如何实现返回上一页并刷新
普通的js返回并刷新这里就不多说了,百度就有很多方法. 下面说的是使用了angularjs.ionic开发的一个手机app中使用的一个返回上一页并刷新的方法. 场景:回复的页面是单独的,点击保存回复后 ...
- QT Slot/Signal
QT的Slot/Singal-槽/信号 1.Usage/使用方法 所有从 QObject 或其子类 ( 例如 Qwidget) 派生的类都能够包含 信号/signal和 槽/slot.当对象改变其状态 ...
- 开发日志系列:一个表单页面的呈现与提交(一)——JSON的操作
JSON操作 引子 最近在做一个表单页面,大概是这个样子的 这里打算用一个JSON存储所有的信息,我们可以理解为,所有东西都存在一个字符串里面.方便,快捷,易读,数据库操作也方便了.甚至,可以将很多不 ...
- starling 中 的特效
一. 最好用同一张图片进行缩放变形等处理后组合,这样可以每帧一draw
- grunt学习
有些时候,项目中的静态资源,比如图片占用的文件有点大,影响加载的速度,所以会选择grunt对其进行压缩打包.对于grunt其他的用法,还在继续学习中,先记录下关于grunt的一些学习. grunt是一 ...
- Windows 8上强制Visual Studio以管理员身份运行
原文链接:http://edi.wang/post/2013/2/28/force-visual-studio-always-run-as-admin-on-windows-8 Windows 8的一 ...
- python使用mysqldb连接数据库操作方法示例详解
这篇文章主要介绍了python mysqldb使用方法,大家参考使用 复制代码代码如下: # -*- coding: utf-8 -*- #mysqldb # site www.jbxue.com ...
- 泛型转Datatable
//自定义扩展方法 public static class ExtMethod { //泛型转为DataTable public static DataTable AsDataTable<T&g ...
- Codeforces Round #334 (Div. 1) C. Lieges of Legendre
Lieges of Legendre 题意:有n堆牛,每堆有ai头牛.两个人玩一个游戏,游戏规则为: <1>从任意一个非空的堆中移走一头牛: <2>将偶数堆2*x变成k堆,每堆 ...
- 编译报错GLIBCXX_3.4.15 clock_gettime@@GLIBC_2.2
GLIBCXX_3.4.15 升级gcc,g++编译器 clock_gettime@@GLIBC_2.2 链接库时加-lrt