博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线性基总结
阅读量:4613 次
发布时间:2019-06-09

本文共 708 字,大约阅读时间需要 2 分钟。

线性基三个性质:

  1. 原序列里面的任意一个数都可以由线性基里面的一些数异或得到。
  2. 线性基里面的任意一些数异或起来都不能得到0
  3. 线性基里面的数的个数唯一,并且在保持性质一的前提下,数的个数是最少的

构造:arr数组为线性基数组,x为要插入的元素。

void add(ll arr[],ll x) {    for (int i = 63; i >= 0; i--) {        if (x & (1ll<

  arr数组中存的元素arr[i]为二进制最高位1在第i+1位,如果这个位置已经有值了的话就对异或之后的值进行判断。

 

可用于求一组数异或后的最大值:

ll work(){    ll ans=0;    for(int i=63;i>=0;i--)    if((ans^d[i])>ans) ans^=arr[i];    return ans; }

 

也可用于求一组数异或后的最小值:

ll work() {    for (int i = 0; i <= n; i++) {        if (arr[i]) return arr[i];    }}

 

 

 

求第k小:

void work()//处理线性基{    for(int i=1;i<=60;i++)    for(int j=1;j<=i;j++)    if(d[i]&(1<<(j-1)))d[i]^=d[j-1];}ll k_th(ll k){    if(k==1&&tot

 

题目明天再写~

更多好题(难度非递增):
   | 
  |
 

 

  参考:

 

转载于:https://www.cnblogs.com/l999q/p/11279571.html

你可能感兴趣的文章
acdream B - 郭式树 (水题 卡cin,cout, 卡LL)
查看>>
BMP图像格式
查看>>
python的匿名函数lambda解释及用法
查看>>
c#遍历Dictionary使用KeyValuePair
查看>>
defineProperties属性的运用==数据绑定
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>
Python中Selenium的使用方法
查看>>
三月23日测试Fiddler
查看>>
20171013_数据库新环境后期操作
查看>>
poj 1654 && poj 1675
查看>>
运维派 企业面试题1 监控MySQL主从同步是否异常
查看>>
Docker 版本
查看>>
poj 1753 Flip Game
查看>>
在深信服实习是怎样的体验(研发测试岗)
查看>>
Linux免密码登陆
查看>>
SpringMVC中文件的上传(上传到服务器)和下载问题(二)--------下载
查看>>
Socket & TCP &HTTP
查看>>