POJ1830 开关问题 对于解异或方程组,系数可以采用二进制压缩,如果系数太多可以使用bitset,但是如果少一点就可以使用下述的写法,更加简单快速 使用bitset的写法更正常的没什么区别,只是对应的消除变为异或操作,另外行变换也会更加简单 ...
分类:
其他好文 时间:
2019-04-23 09:38:06
阅读次数:
283
题意 :给定一个$5\times 6$的棋盘的$01$状态,每次操作可以使它自己和周围四个格子状态取反,求如何操作,输出一个$01$矩阵 题解 :这题可以通过枚举第一行的状态然后剩下递推来做,但是这里还是写一种好理解的高斯消元解异或方程组的方法。 对于每个格子列一个方程,未知数就是要求的答案矩阵,系 ...
分类:
其他好文 时间:
2019-02-08 20:19:53
阅读次数:
194
传送门 题意:给出$N,M$,试构造一个$N \times M$的非全$0$矩阵,其中所有格子都满足:它和它上下左右四个格子的权值之和为偶数。$N , M \leq 40$ 可以依据题目中的条件列出有$N \times M$的元、$N \times M$个方程的异或方程组(异或方程组就是所有位置都是 ...
分类:
其他好文 时间:
2018-10-28 12:53:59
阅读次数:
199
题面 "题目传送门" 解法 学习了怎么用高斯消元解一个异或方程组 其实和普通的高斯消元是一样的 在多少个方程后就确定答案可以直接边做边取max即可 用bitset优化异或 时间复杂度:$O(\frac{nm^2}{w})$ 代码 cpp include using namespace std; te ...
分类:
其他好文 时间:
2018-08-14 20:03:43
阅读次数:
141
题面在这里! 很明显二进制每一位都是无关的,所以可以先把原问题简化:给矩阵中的每个位置填入0/1,使得特定行/列有奇数个1,其他行/列有偶数个1。 一个比较好想的方法是对行和列 列出 n+m 个异或方程,其中有 n*m 个变量,随便求出一组解就好了(如果有的话)。 但这个貌似并不是很好写。。。 可以 ...
分类:
其他好文 时间:
2018-08-12 18:39:32
阅读次数:
177
题解 "luogu外星千足虫" (线性基+高斯消元) 题目 "luogu题目传送门" 题解想法 1. 首先需要知道这是个异或方程对吧 然后 既然看到位运算,又有这么多,就可以考虑线性基 (做题技巧),那我们就丢进去 接下来看一看线性基,~~哇,性质美妙~~ 它不就是Gauss消元里面想要的上三角矩阵 ...
分类:
其他好文 时间:
2018-08-10 23:06:25
阅读次数:
161
【题目链接】 http://poj.org/problem?id=1222 【算法】 列出异或方程组,用高斯消元求解即可 【代码】 ...
分类:
其他好文 时间:
2018-07-10 19:15:07
阅读次数:
148
【题目链接】 http://poj.org/problem?id=1830 【算法】 列出异或方程组,用高斯消元求解 【代码】 ...
分类:
其他好文 时间:
2018-07-10 14:49:56
阅读次数:
176
可以发现每条边只能选一次或者两次,并且最后每个点的度数(∑邻接边选的次数和)都是偶数(代表有欧拉回路)。 然后根据题意列一个 n 行 m+1 列的01矩阵,每一行代表一个异或方程组(每个点的度数是偶数),每一列(除了最后一列)代表一个变量(每条边是不是选2次),最后一列0/1代表这个点目前的度数是偶 ...
分类:
其他好文 时间:
2018-06-09 15:56:31
阅读次数:
184
做法超好想,细节调一辈子。 估计这句话最适合这个题了hhhh。 首先一个很显然的想法:把边设成未知数,对点列异或方程,最后的解的个数就是 2^自由元 。 不过如果某个联通分量里有奇数个黑点,那么问题无解。然后我来证明一下: 把一个联通分量里所有点代表的方程都异或起来,因为这个联通分量里的边恰好在其两 ...
分类:
其他好文 时间:
2018-04-29 13:29:01
阅读次数:
193