题解:n个元素的子集的最大异或和我居然理解了一星期 T_T lyd讲解坑死人。。。http://sujinyue.is-programmer.com/posts/42663.html这里解决了我的所有疑问。所谓线性基就是原数组所能xor出的一切数这个线性基都能xor出来,不多不少。为什么可以呢?我们...
分类:
其他好文 时间:
2015-01-18 13:01:27
阅读次数:
146
思想都在我的这篇博客里面。
呃,那道题懂差不多之后随便水水这道题就过了。
#include
#include
#include
#include
#define N 1010
using namespace std;
struct KSD
{
long long a;
int b;
bool operator d.a:b>d.b;}
}x[N];
long long ins[70...
分类:
其他好文 时间:
2015-01-10 08:52:23
阅读次数:
162
题目大意:给定一些元素,每个元素有两个值a和b,现在需要选出一些元素,在不存在a值异或和为0的子集的情况下使b之和最大
可以用拟阵证明贪心的正确性(我不会证,同学会)
于是我们将b值排序,从大到小插入
动态维护线性基即可
#include
#include
#include
#include
#define M 1010
using namespace std;
struct ab...
分类:
其他好文 时间:
2015-01-09 19:24:09
阅读次数:
196
题目大意:给定一个n个数的集合S和一个数x,求x在S的2^n个子集从大到小的异或和序列中最早出现的位置
有学长真好不用自己打题目大意了233
首先我们求出线性基 我们会得到一些从大到小排列的数和一堆0 记录0的个数
不考虑0,看前面的数,由于线性基的性质,我们直接贪心从大到小枚举 若当前异或和异或这个值小于Q则取这个数 (注意^不要写成+或者| 本蒟蒻已经因为这个WA了两道题了
然后我们通...
分类:
其他好文 时间:
2014-10-06 19:14:50
阅读次数:
174
题目大意:给定一个数组,求这些数组通过异或能得到的数中的第k小是多少
首先高斯消元求出线性基,然后将k按照二进制拆分即可
注意当高斯消元结束后若末尾有0则第1小是0 特判一下然后k--
然后HDU输出long long是用%I64d 无论C艹还是G艹都是
#include
#include
#include
#include
#define M 10100
using namespace ...
分类:
其他好文 时间:
2014-10-06 18:07:20
阅读次数:
223