POJ - 1222 与这道题一样,都是高斯消元求异或方程组。 一共$30$盏灯,每盏灯影响上下左右的灯,基本上就是矩阵改一下。 最后求解方程,自由元随你定。 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> ...
分类:
其他好文 时间:
2020-07-21 23:27:44
阅读次数:
107
题目传送门:loj bzoj 题意中的游戏方案可以转化为一个异或方程组的解,将边作为变量,点作为方程,因此若方程有解,方程的解的方案数就是2的自由元个数次方。我们观察一下方程,就可以发现自由元数量=边数-点数+连通块数,或者换句话说,若对原图的每个联通块指定一棵生成树,那么确定了生成树之外的边是否进 ...
分类:
其他好文 时间:
2019-09-07 22:10:36
阅读次数:
117
"嘟嘟嘟" 这题思路还是挺奇特的,神奇的利用了自由元的性质。 看到这种题,第一反应是设$2 ^ n$个状态,然后解方程组。但对于这题来说显然过不了。 我们还是用高斯消元,对于每一个开关$i$,令$f[i][n + 1] = a[i]$^$b[i]$,$a[i]$表示$i$的初始状态,$b[i]$为结 ...
分类:
其他好文 时间:
2019-07-10 16:25:59
阅读次数:
78
luogu 点灯游戏应该很多人都在小时候頽过吧 反正我直到现在也不会 很明显一个灯最多只需要点一次 然后高斯消元 解完肯定剩自由元(就是那些全是0的行) 然后这些都爆搜 由于剩下的自由元不会太多 所以时间复杂度$O(能过)$ 以上 1 #include<cstdio> 2 #include<algo ...
分类:
其他好文 时间:
2019-06-23 16:03:20
阅读次数:
102
pro:有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关,如果为关就变为开。你的目标是经过若干次开关操作后使得最后N个开关达到一个特定的状态。对于任意一个开关,最多只能进行一次 ...
分类:
其他好文 时间:
2019-04-24 19:38:38
阅读次数:
192
~~并查集水题。~~维护变量的对应位的相关关系,判断不确定点(自由元)的个数即可。 代码中的p数组:p[1] 值的id, p[2~k+1]每个变量的第一位的id。 以下为输入格式: 第一行:k(k ...
分类:
其他好文 时间:
2019-01-02 12:32:05
阅读次数:
170
做法超好想,细节调一辈子。 估计这句话最适合这个题了hhhh。 首先一个很显然的想法:把边设成未知数,对点列异或方程,最后的解的个数就是 2^自由元 。 不过如果某个联通分量里有奇数个黑点,那么问题无解。然后我来证明一下: 把一个联通分量里所有点代表的方程都异或起来,因为这个联通分量里的边恰好在其两 ...
分类:
其他好文 时间:
2018-04-29 13:29:01
阅读次数:
193
题目中说数组中的数的最大质因子不超过500,我们筛出≤500的质数,然后考虑对每个质数列一个方程组。。 然后这几乎就是高斯消元求解异或方程组的模板题了。。。。 注意答案是 2^(自由元数量)-1,因为空集不是答案的一部分。。 ...
分类:
其他好文 时间:
2018-02-13 21:42:05
阅读次数:
170
"题目链接" 显然我们需要使每个i满足$( ∑_{j} X[j] A[i][j] ) % 2 = B[i]$ 求这个方程自由元Xi的个数ans,那么方案数便是$2^{ans}$ %2可以用^代替,不难看出 B[i]=st[i]^ed[i] 如果X[j]=1,假设j会影响i,那么X[j] A[i][j ...
分类:
其他好文 时间:
2018-02-13 10:31:37
阅读次数:
147
千年老题,以前用枚举做,现在用高斯消元做 自由元直接做成0即可 ...
分类:
其他好文 时间:
2018-01-13 11:14:19
阅读次数:
138