当前位置: 首页 > news >正文

线性基(个人学习笔记)

前言:
个人学习用途,逻辑混乱。

线性基:由序列A构成的线性基,线性空间为任意取序列A中的数异或和。线性基的第i位数的最高位为第i位或不存在。

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

线性基构造

void base_insert(int x)
{for (int i = 63; i >= 0; i--){if (x & (1ll << i)){if (linebase[i]){x ^= linebase[i];}else{linebase[i] = x;break;}}}
}

线性基求异或和最大值

int maxn = 0;for (int i = 63; i >= 0; i--){maxn = max(maxn, maxn ^ linebase[i]);}

线性基求异或和最小值:linebase[0]即为最小值

线性基求异或和第k小:实际上由于开头提到的性质,可以将线性基与二进制下类比,高位 > 任取低位,所以将k分解二进制,k的第i位为1,则取线性基的第i个存在的数

int ans=0;
for(int i=0;i<=60;i++)if(linebase[i]!=0){if(k&1)ans^=d[i];k>>=1;}

收获:

http://www.njgz.com.cn/news/58.html

相关文章:

  • 花菖蒲 2025.7.26 模拟赛题解
  • 信任的意外反射:深入解析LLVM循环向量化器中的罕见编译错误
  • P1429 平面最近点对(加强版)[骗分解法]
  • 7.26 - GENGAR
  • P4565 [CTSC2018] 暴力写挂 题解
  • 第十二篇
  • 计算机网络——应用层 - 浪矢
  • 《第一节:跟着符映维学C语言---配置c语言开发环境》
  • 再见,大连
  • 影视软件集合分享
  • 7.26总结
  • geogebra 2 进阶
  • 20250726GF模拟赛
  • java学习
  • 深入解析Passkeys背后的密码学原理
  • CCF中学生计算机程序设计-基础篇-第一章-函数练习答案
  • 第二次总结——关系中的魔法语言
  • 2025.7 Solar应急响应-
  • 【计算几何】Largest Quadrilateral
  • 2025暑假qbxtNOIP实战梳理营Day1题目
  • 请求类型绑定响应类型
  • Untitled-1
  • AI代理性能提升实战:LangChain+LangGraph内存管理与上下文优化完整指南
  • GAIA基准测试介绍
  • 多项式全家桶(wjc)
  • 暑假qbxtNOIP实战梳理营Day1题目
  • 7月26日
  • 韦东山:嵌入式Linux全新系列教程之驱动大全(基于IMX6ULL开发板) 视频+资料(60G) 价值1299元
  • ARC200 小记
  • java第二十六天