二进制线性基学习笔记

news/2025/2/21 23:39:40/文章来源:https://www.cnblogs.com/sslbj/p/18730431

二进制线性基学习笔记

定义

定义(性质型定义) 定义线性基为其中的元素可以通过求异或和,得到原集合的元素任意求异或和得到的所有值的集合,且集合大小最小。

性质

线性基大小定理 线性基的大小 \(\le \log a_i\)

我们把 \(a\) 的每一位取出来形成一个 \(n \times \log a_i\) 的矩阵。

线性基本质上是把这个矩阵看作系数矩阵后求出的简化阶梯矩阵。因为初始矩阵的各种组合对应了 \(a\) 的各种组合。且系数矩阵和简化阶梯矩阵等价。

于是线性基大小就是 \(\min(n, \log a_i) \le \log a_i\)

线性基子集非零定理 线性基不存在异或和为 \(0\) 的子集。

\(p_a \oplus p_b \oplus p_c \oplus p_x=0\),则 \(p_a \oplus p_b \oplus p_c=p_x\),遂 \(p_x\)​ 是多余的,与定义矛盾。

做法

贪心求法的正确性 设线性基数组为 \(d_i\) 则下列操作得到的 \(d\) 去除 \(0\) 后是线性基:

  • 对于每个 \(x\) 从高位到低位进行。
  • 如果 \(x\) 的第 \(i\) 位为1,判断 \(d_i\) 是否为 \(0\)。如果是,\(d_i=x\) 并退出;如果不是,\(x=x \oplus d_i\) 然后重复此步。

如果 \(x\)\(i\) 位为 \(1\)\(d_i\) 这一位为 \(1\),那么显然这一位用 \(d_i\) 结合其它的可以表示。否则,这一位不需要表示。由此,所有的数都可以被我们表示出来,得证。

由此我们也可以得知:若 \(d_i\) 不为 \(0\),则 \(d_i\) 的最高的 \(1\) 位在第 \(i\) 位。

void insert(int x)
{for(int i = 55;i >= 0;i--){if((x >> i) & 1){if(d[i]) x ^= d[i];else{d[i] = x;return;}}}
}

应用

应用 1 求异或和的最大值。

考虑直接贪心解决即可。如果答案这一位是 \(1\),那么啥也不做。否则异或上即可。

int ansmx()
{int ans = 0;for(int i = 55;i >= 0;i--) if(!((ans >> i) & 1)) ans ^= d[i];return ans;
}

应用 2 求异或和的最大值。

直接输出 \(d\) 的最小值即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/887850.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现URL自动转二维码的高效方法

Python实现URL自动转二维码的高效方法 安装包依赖 pip install qrcode pip install pillow程序 import qrcode data = "https://www.cnblogs.com/tianwuyvlianshui/"#网址 img = qrcode.make(data) img.save("blogs.png")#生成图片命名运行后将在工程文件夹…

百万架构师第四十二课:Nginx:Nginx 的初步认识|JavaGuide

百万架构师系列文章阅读体验感更佳 原文链接:https://javaguide.net 公众号:不止极客 Nginx 的初步认识及配置 课程目标Nginx 在分布式架构中的应用分析 常用的 Web 服务器及差异 Nginx 的安装以及配置分析 Nginx 虚拟主机配置 详解 Location 的匹配规则背景 早期用 F5 做负载…

清华大学第5弹: 《DeepSeek与AI幻觉》 - 清华大学DeepSeek全套资料完整版 - 持续更新 - PDF免费下载

《DeepSeek与AI幻觉》报告探讨了AI幻觉的成因、评测方法及其影响,并以DeepSeek模型为例,分析数据偏差、知识固化等问题如何导致幻觉现象。报告还提出缓解策略,如联网搜索、提示词优化,并探讨AI幻觉在科学创新和艺术创作中的潜在价值。由清华大学新闻与传播学院与人工智能学…

win系统查看wife连接密码

win系统查看wife连接密码 1、win+R ,打开cmd 2、查看本机连过的WiFi名 netsh wlan show profiles3、获取WIFI密码 netsh wlan show profiles “WIFI名” key=clear密码如下

crypto做题记录

buuctf--wp Crypto 权限获得第一步: 看样子是windows系统存储用户密码哈希值的格式,密文一般存储在C:\Windows\System32\config\SAM文件中,只有具有管理员权限的用户才能通过特定工具(hashdump,pwdump)访问SAM文件,进行密码重置等操作。 下图表示用户名: 用户RID:500(用…

若依框架常见问题一

错误一:问题出在configuration和configLocation重复,如下图:修改方法也很简单,只要删除掉application.yml文件中的以下就可以解决:

Cypher Chapter 5: MECHANISED CRYPTOGRAPHY

Chapter 5: MECHANISED CRYPTOGRAPHY 恩格玛机示意图:谜题围绕恩格玛机展开。 PUZZLE1 Input/output: ABCDEFGHIJKLMNOPQRSTUVWXYZScrambler I: ABCDEFGHIJKLMNOPQRSTUVWXYZ UWYGADFPVZBECKMTHXSLRINQOJReflector: ABCDEFGHIJKLMNOPQRSTUVWXYZ YRUHQSLDPXNGOKMIEBFZCWVJATCiph…

学生成绩管理系统问题分析

代码来源:CNDS《学生成绩信息管理系统设计》 运行环境:Visual Studio 2022学生成绩信息管理系统设计 #include #include using namespace std; const int MAX_STUDENTS = 100; class Student { public:string name;int id;float score; }; class StudentManager { private:…

若依02

swagger 简单介绍Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务 官网:https://swagger.io/。 它的主要作用是:使得前后端分离开发更加方便,有利于团队协作 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担 功能测试S…

AI大模型有哪些常见的应用场景

图像生成应用场景: 图像生成 功能描述: 根据文本描述或参考图生成高质量图片,支持艺术、写实等多种风格。 用法示例: 输入提示词(如“赛博朋克风格的城市夜景”),调整参数(分辨率、风格强度)。 代表应用: 即梦AI视频生成应用场景: 视频生成 功能描述: 从文本/图片生成视频…

『Python底层原理』--Python对象系统探秘

Python是一种非常灵活的编程语言,它的灵活性很大程度上来自于它的对象系统。 在Python中,一切都是对象,这意味着无论是数字、字符串,还是我们自己定义的类的实例,它们在底层都遵循相同的规则。 本文尝试揭开Python的对象系统的神秘面纱。 1. 对象和类型 在Python中,每个对…

MyBatis-Plus配置之 —— 配置冲突

MyBatis-Plus配置 在 SpringBoot 工程中,当使用 yml 文件为 MyBatis-Plus 添加配置时,可能会出现 “配置冲突” 的问题,即:配置项如下: # MyBatisPlus配置 mybatis-plus:configuration:map-underscore-to-camel-case: true #字段与属性,自动转换为驼峰命名# ...config…