题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4671 首先,考虑容斥,就是设 \( t[i] \) 表示至少有 \( i \) 个连通块的方案数; 我们希望得到恰好有一个连通块的方案数,但这里不能直接 \( + t[1] - t[2] + ...
分类:
其他好文 时间:
2018-12-05 21:02:23
阅读次数:
182
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4671 考虑计算不是连通图的方案,乘上容斥系数来进行容斥。 可以枚举子集划分(复杂度是O(Bell))。就是 dfs ,记录已经有了几个集合,枚举当前元素放在哪个集合里(给它标一个 id )或者 ...
分类:
其他好文 时间:
2018-12-05 20:49:52
阅读次数:
235
用途 处理关于子集的异或和的问题,比如子集异或和的最大值,或者能不能异或出某个数 原理 从一堆数中处理出一组线性无关(?)的数,使得这些数能异或出的数和原来能异或出的数相同 线性基中,以每个位置为最高位1的数(最多)只有一个,这样就保证了线性无关 做法 依次处理每个数,对于x,从大到小扫描它的每一位 ...
分类:
其他好文 时间:
2018-12-04 20:37:27
阅读次数:
136
还是见的题太少了 「NowCoder Contest 295」H. Playing games 题意:选出尽量多的数使得异或和为$ 0$ $ Solution:$ 问题等价于选出尽量少的数使得异或和为全集 根据线性基思想可以推得整个集合的异或集合可以被不超过$ bitcount$个数的异或集合表示 ...
分类:
其他好文 时间:
2018-12-01 15:38:16
阅读次数:
185
线性基有啥用 我们有些时候会遇到类似这样的问题:给定一组数字,求异或和最大值。 我们可以用线性基来解决这个问题。 怎么构建线性基呢 那么我们怎么考虑这个问题呢? 我们可以类比于向量。 在向量中,我们可以用单位向量表示某一个方向上的单位量。并且我们能用n个单位向量导出一个$n$维的空间。 同理对于异或 ...
分类:
其他好文 时间:
2018-12-01 01:14:51
阅读次数:
190
这个输出可是有点恶心啊……WA\ inf,最后抄了别人的输出方法orz 还有注意会爆long long,要开unsigned long long 对于k==1,单独考虑每一位i,如果这一位为1则有0.5的概率贡献1 include include using namespace std; const ...
分类:
其他好文 时间:
2018-11-25 20:20:53
阅读次数:
150
先按魔力值从大到小排序,然后从大到小插入线性基中,如果插入成功就加上这个魔力值 因为线性基里是没有异或和为0的集合的,所以正确性显然,然后最优性,考虑放进去一个原来没选的,这样为了可行性就要删掉一个,又因为是从大到小加进去的,所以删掉的这个魔力值一定是大于加进去的,所以不优,所以贪心构造的就是最优解 ...
分类:
其他好文 时间:
2018-11-25 13:23:57
阅读次数:
189
Description 求 $n$ 个数的第 $k$ 小的异或和。 Solution 把 $k$ 二进制拆分,若第 $i$ 位上是 $1$,就把线性基中第 $i$ 个元素异或起来。 注意要维护非重叠的右上角矩阵。 Code ...
分类:
其他好文 时间:
2018-11-24 23:55:46
阅读次数:
253
题意:给你n个数,要你求出这n个数异或以后的最大值. 注:线性基的应用 这个题的题意很残暴啊,一看就明白,也知道是线性基,但是还是搞不太懂线性基的意思。。。。。。。。。。。。。。。。 首先给出几个博客讲线性基的: http://www.cnblogs.com/ljh2000-jump/p/58699 ...
分类:
其他好文 时间:
2018-11-22 02:39:36
阅读次数:
151
线性基真的是一个非常神奇的算法。它可以用于求解一个集合内的最大异或和,而且效率极高,是$O(N\ log\ MaxNum)$的时间复杂度。所以,它还是十分值得一学的。 ...
分类:
其他好文 时间:
2018-11-02 21:40:56
阅读次数:
163