【算法笔记+SGU275+HDU3949】线性基(XOR,求n个数异或得到的第k小的数)

网上大佬写的博客。。。我以为自己看懂了(假装看懂)。。。结果第二题就被卡住了。。。看不懂了。。

https://blog.sengxian.com/algorithms/linear-basis

https://www.cnblogs.com/vb4896/p/6149022.html

是我水平不够,看起来有点费劲(;´༎ຶД༎ຶ`)智商堪忧

还是视频看起来轻松很多:青涩的讲解,但是能听懂,给up主点赞!

目前的理解:线性基就是通过异或构建行阶梯矩阵,找到最大线性无关的向量组,去解决有关XOR的一些问题

数x对应的二进制为:\left (b_n...b_2b_1b_0\right )_2 bj=0或者1,用p[]存下面矩阵中的数

所谓线性基,就是线性代数里面的概念。一组线性无关的向量便可以作为一组基底,张起一个线性的向量空间,这个基地又称之为线性基。

第一个例子:


a[4]=\left\{7,2,3,4\right\},插入的时候从高位向低位看起

--->插入a[0]=7=0111:a[0]的b_2=0,p[2]=a[0]

矩阵:

\begin{bmatrix} 0&0&0&0\\ 0&1&1&1\\ 0&0&0&0\\ 0&0&0&0 \end{bmatrix}

--->插入a[1]=2=0010:a[1]的b_1=1,p[1]=a[1],b_1后面的位k,若b_k=1,那么p[1]^=p[k](p[k]的b_k=1),消掉p[1]中b_1后的1,让p[1]中只有b_1=1;同理,p[1]上面的行j,如果p[j]中的b_1=1,那么p[j]^=p[1],消掉p[j]中b_1位上的1,保证p[j]中只有b_j=1

矩阵:

\begin{bmatrix} 0&0&0&0\\ 0&1&0&1\\ 0&0&1&0\\ 0&0&0&0 \end{bmatrix}

--->插入a[2]=3=0011,从高位向低位看起ÿ

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值