正题

题目链接:https://www.luogu.com.cn/problem/P3812


题目大意

给出nnn个数,求在其中选出若干个数使得它们的异或和最大。


解题思路

序列aaa的线性基bbb满足以下性质

  1. aaa中的任何一个数都可以由bbb中的若干个数异或得到
  2. bbb中的任何一个数都不可由bbb中的若干个数异或得到
  3. bbb是满足性质1,21,21,2的最小集合

如何用线性基求该题?求序列aaa的最大异或和其实就是求其线性基的最大异或和,而且我们知道对于线性基中的数did_idi​满足它的i+1i+1i+1位为111。

所以对于每个did_idi​如果答案异或上他可以变大那么久异或上它即可。

时间复杂度O(50n)O(50n)O(50n)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
ll n,d[60];
void add(ll x){for(ll i=51;i>=0;i--){if(x&(1ll<<i)){if(d[i])x^=d[i];else{d[i]=x;break;}}}return;
}
int main()
{scanf("%lld",&n);for(ll i=1;i<=n;i++){ll x;scanf("%lld",&x);add(x);}ll ans=0;for(ll i=51;i>=0;i--)if(ans<(ans^d[i]))ans=ans^d[i];printf("%lld",ans);
}

P3812-[模板]线性基相关推荐

  1. 洛谷P3812 【模板】线性基

    传送门 不知道线性基是什么东西的可以看看蒟蒻的总结 线性基是个啥玩意儿-- 为啥只要消成上三角矩阵就行了?不是得搞成对角矩阵的么? 1 //minamoto 2 #include<cstdio& ...

  2. [洛谷3812]【模板】线性基

    题目大意: 给你n个数,求这些数能异或出的数的最大值. 思路: 线性基模板. b中的数满足对于每个b[i],最高位在第i位. 构造方法就是对于每个数字,从高到低枚举每一个1,如果这一位对应的b[i]还 ...

  3. F. Ivan and Burgers(前缀线性基模板)

    前缀线性基模板 F. Ivan and Burgers /*Author : lifehappy */ #pragma GCC optimize(2) #pragma GCC optimize(3) ...

  4. [数学]------线性基

    线性基是什么 线性基是一个数的集合. 对于数的集合 A ,A的线性基是指,在 A 中选取任意多个数进行异或,得到的结果的值域,和 A 的线性基中数字异或的值域相同.这样对原数组元素的异或运算就可以转化 ...

  5. Luogu P5556 圣剑护符(线性基,树链剖分,线段树)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 小L 和 小K 面前的圣剑由 nnn 块护符组成,分别编号为 1,2,-,n1,2,\ ...

  6. HDU3949 XOR (线性基、查找第k小值)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 我们用高斯消元求出的a1,a2,-,ana_1,a_2, \dots,a_na1​,a2​,-,an​ ...

  7. 2017年ICPC西安邀请赛A、XOR(线段树套线性基 + 思维)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目传送门 Problem 给你 nnn 和 nnn 个整数的数组 aaa,以及kkk和qqq,有 q ...

  8. 【基础操作】线性基详解

    线性基是一个奇妙的集合(我摘的原话) 这里以非 $OI$ 的角度介绍了线性基 基础部分 模板题 给你 $n$ 个数的集合,让你选出任意多个不重复的数,使得它们的异或和最大. 线性基是什么 我们称集合 ...

  9. 线性代数(矩阵、高斯、线性基……)

    矩阵 矩阵加法: 相同位置相加. 矩阵乘法: 满足分配率.结合律,不满足交换律(矩阵与逆矩阵之间除外) . 矩阵转置: 记矩阵为 \(A\) ,则 \(A\) 的转置记为 \(A^T\) . 性质: ...

最新文章

  1. 安装Debian 7.8 过程,以及该系统的配置过程
  2. HBase总结(十二)Java API 与HBase交互实例
  3. springboot学习笔记(十)
  4. kafka 同步提交 异步_极限MQ (5) Kafka 消费者
  5. 如何参与一个GitHub开源项目
  6. 没有人能阻止程序员将电脑上的一切搬到网页上
  7. windows多用户 文件夹不共享_手把手教你如何使用Tekla多用户
  8. 深入理解JSON对象
  9. IE被哪个T吗D修改了,卧槽!
  10. Flask练手项目之通讯录
  11. Python自动化办公 | 如何实现报表自动化?
  12. 密码学基础(二):对称加密
  13. 传世调试之-道士技能《解毒术》、《神光术》:无法正常升级。
  14. 国内用户最多的linux系统,统信UOS将可能超越麒麟系统夺得中国Linux市场份额第一名...
  15. 天猫精灵GXIC2020 AIOT物联网大赛获奖了
  16. 火狐 Firefox 浏览器书签同步问题
  17. ONOS 以及 ODL
  18. 【转载】分页插件中关于PageInfo
  19. 2020腾讯广告算法大赛
  20. Brain Tumor Segmentation (BraTS) 脑部肿瘤分割2--二维UNet的复现与数据准备篇

热门文章

  1. 京东面试官:呦,你对中间件 Mycat了解的还挺深~
  2. 用html制作篮球网页,篮球网站的设计与实现).doc
  3. 中止是怎么用的_多士炉怎么用 使用多士炉注意事项
  4. [JavaWeb-HTML]CSS与html结合方式
  5. [Java基础]List集合子类特点
  6. 双端队列 BFS + Chamber of Secrets CodeForces - 173B
  7. 安徽计算机学业水平测试内容,【2017年整理】安徽省学业水平测试信息技术(必修)知识点.doc...
  8. linux不能更改密码,Linux服务器无法更改密码的解决办法--passwd: User not known
  9. Zookeeper实践与应用--分布式锁实现
  10. SQL(三)- 连接查询