首页 > 其他分享 >异或线性基

异或线性基

时间:2024-09-23 15:24:14浏览次数:9  
标签:那么 元素 集合 异或 得到 线性

问题

给定一个数组 \(A = [a_1, a_2,...a_n]\) ,其中 \(a_i ≤ 2d\) ,在 A 中选择元素的某个子集,并将它们 XOR。求你能得到的不同元素的个数。

思路

显然可以得到一个效率非常劣的做法

x[0].insert(0);
for (int i = 1; i <= n; i++) {
  x[i] = x[i - 1];
  for (auto cur : x[i - 1]) {
    x[i].insert(cur ^ a[i - 1]);
  }
}
cout << x[n].size();

我们可以研究一下集合的性质,我们假设 \(a, b\) 为集合中的两个元素,那么 \(a \oplus b\) 也必然在集合中,现在我们回头来考虑一下 \(x_i\) 与 \(a_{i + 1}\) 计算 \(x_{i + 1}\) 的过程 \(:\) 如果 \(a_{i + 1} \in x_i\)那么不用考虑 \(a_{i + 1}\) 的影响,如果没有,那么集合大小铁定会翻两倍,那么这个集合最多大小翻 \(d\) 倍,由此我们可以得到一个时间复杂度为 \(O(n + 2^d)\) 的代码
如果 \(2^d\) 很大,这种算法也会超时

标签:那么,元素,集合,异或,得到,线性
From: https://www.cnblogs.com/libohan/p/18427129

相关文章

  • 数据结构--第二章 线性表
    注:根据严蔚敏等人的数据结构(C语言版)(第二版)记录,用于自己的复习记录。线性结构特点:除第一个元素无直接前驱,最后一个元素无直接后继外,其他每个数据元素都有一个前驱和一个后继。线性表的定义和特点线性表是最基本且最常用的一种线性结构。线性表:由()个数据特性相同的元素构成......
  • 异或线性基
    我们考虑这样一个问题:给定\(N\)个整数\(A_1,A_2,\dots,A_N\)。求能异或出多少种不同的值。我们考虑用一个集合\(S\)记录目前能凑出来的数字。当我们要加入\(A_i\)时,如果\(A_i\not\inS\),则\(x\oplusA_i(x\inS)\)一定都不在\(S\)中,否则可以通过\((x\oplusA_i)\o......
  • 数据结构之线性表——LeetCode:328. 奇偶链表,86. 分隔链表,24. 两两交换链表中的节点
    328.奇偶链表题目描述328.奇偶链表给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输......
  • 数据结构之线性表——LeetCode:80. 删除有序数组中的重复项 II,88. 合并两个有序数组,4.
    80.删除有序数组中的重复项II题目描述80.删除有序数组中的重复项II给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用O(1)额外......
  • 数据结构之线性表——LeetCode:82. 删除排序链表中的重复元素 II,21. 合并两个有序链
    82.删除排序链表中的重复元素II题目描述82.删除排序链表中的重复元素II给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。运行代码classSolution{public:ListNode*deleteDuplicates(ListNode......
  • 地统计常用公式与概念介绍:插值、平稳假设、变异函数、块金、克里格、线性无偏等
      本文对插值、平稳假设、变异函数、克里格等常用的地学计算概念加以介绍,并对相关公式进行推导。1引言  我们由地学计算的几个基本概念入手,对相关理论方面的内容加以一定了解。  需要注意的是,以下内容如果单独来看或许有些不好理解,但一旦将其与实际应用结合,便会豁然开朗......
  • 吴恩达机器学习课程 笔记3 多元线性回归梯度下降
    多维特征多维特征指的是在机器学习和数据分析中,每个样本不仅由单一特征描述,而是由多个不同属性或维度组成的向量。这些特征可以是连续的也可以是离散的,它们共同构成了数据集的一个样本点。多维特征的例子房屋价格预测:面积(平方米)房间数量建造年份地理位置(经度、纬度)......
  • 线性代数学习笔记(一)(2024.7.24)
    向量定义从偏计算机的角度分析,这是排成一列的数。从偏物理的角度分析,这是一条有方向有长度的线段。可以通过数形结合的方式来理解向量。虽然向量的起点不固定,但画平面直角坐标系中的向量,我们一般将向量的起点放在\((0,0)\),用向量的终点表示这个向量,如图:这个向量可以表示......
  • 【无人机吊运】基于matlab线性二次调节LQR控制多架无人机吊运(有效载荷)【含Matlab源码
    ......
  • 【深度学习】Transformer掌握文本嵌入层和位置编码的实现过程,解码器中各个组成部分的
    1输入部分介绍输入部分包含:源文本嵌入层及其位置编码器目标文本嵌入层及其位置编码器 2文本嵌入层的作用 无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示,希望在这样的高维空间捕捉词汇间的关系.文本嵌入层的代码分析:#导入必......