随笔 - 22  文章 - 0 评论 - 0 阅读 - 534

概念

  • 线性基是一个集合。
  • 从原集合中选取任意数都能通过线性基中的数异或得到。

本质上是对集合的压缩

性质

  1. 所有数字没有最高位相同的

  2. 集合大小为 log2 级别。

操作

排查:若线性基内有最高位相等的,让其相异或,并继续排查直到没有可操作的数。

若原集合内有 0 线性基无法实现。

实现

void insert(int x)
{
    for(int i=62;i>=0;i--)
   {
        if(x&(1ll<<i))
       {
            if(xxj[i])
           {
                x^=xxj[i];
           }
           else
           {
                xxj[i]=x;
               return;
           }
       }
   }
   return ;
}
posted on   lizhous  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示