浅谈线性基在 OI 中的应用

news/2025/2/13 21:30:03/文章来源:https://www.cnblogs.com/BYR-KKK/p/18714452

这是一篇对 cxy 2025 年同标题集训队论文的分析。该分析会较论文更多地从线性代数角度出发,需要读者有较好的线性代数认识。

基础线性基

考虑在 \(\mathbb{F}_2\) 上定义向量,此时向量加法等价于大整数异或。对于给出的向量组 \(S\),我们希望求出该向量组张成空间(\(\operatorname{span}(S)\))的一个线性基,同时该线性基满足每个向量首个非零元素的位置递减。

求解任意线性空间的线性基可以利用高斯消元做到 \(O(n^3)\) 时间复杂度,但是异或空间可以做到更优。

等价向量组的增量构造

在线性代数中,两个向量组等价当且仅当张成的空间相同,对于给定的向量组 \(S\),和 \(i\neq j\),我们从 \(S\) 中删去 \(S_j\),同时加入 \(S_i\oplus S_j\),得到的新向量组 \(S'\)\(S\) 等价(\(S\cong S'\))。证明考虑原向量组的线性组合,由于向量中的元素全部在 \(\mathbb{F}_2\) 上,因此在线性组合中的系数只需考虑 \(0\)\(1\),对线性组合是否包含 \(S_j\) 分类讨论即可。

接下来给出等价向量组的增量构造。需要构造 \(S'\cong S\),使得 \(S'\) 内的零向量只出现在一段后缀,且非零向量的最高非零位严格递减。假设已经构造出了 \(S'_{1\sim i}\cong S_{1\sim i}\),考虑加入 \(S_{i+1}\),记录指针 \(p=1\),初始令 \(S'_{i+1}=S_{i+1}\),进行讨论,在 \(p=i+1\) 时结束:

  • \(S'_{i+1}\) 的最高位高于 \(S'_j\) 的最高位,将 \(S'_{i+1}\) 移到 \(S'_j\) 前,结束整个构造过程。

  • \(S'_{i+1}\) 的最高位和 \(S'_j\) 的最高位相同,令 \(S'_{i+1}\leftarrow S'_{i+1}\oplus S'_j\),指针右移。

  • \(S'_{i+1}\) 的最高位低于 \(S'_j\) 的最高位,指针右移。

这个过程显然是正确的。考虑最后得到的向量组形如一段非零前缀加上一段全零后缀,此时从极长非零前缀中任取一段子序列,得到的异或和都不相同。不难发现此时这段非零前缀就是原序列的一个线性基,设全零后缀中有 \(c\) 个零向量,则任取 \(2^c\) 中子序列的任意一种异或结果都为零向量。也就是说,原向量组的异或和组成的可重集就是极长非零前缀异或和组成的不可重集复制 \(2^c\) 得到的结果。

线性基的增量构造

上面的过程实际上已经构造出了一个原向量组的线性基(极长非零前缀),时间复杂度为 \(O(|S|m)\),其中 \(m\) 为向量维数,额外空间开销为 \(O(m)\)

线性基求向量组的最大线性表示

换句话说,就是对于原向量组,找出一个子序列使得异或和最大。

存在简单的贪心过程,考虑线性基 \(w_{0\sim m-1}\)(线性基,\(w_i\) 上存的是最高位为 \(i\) 的向量),从高到低贪心,从 \(ans\oplus w_i\)\(ans\) 中选取较优的一个即可,时间复杂度 \(O(m)\)

线性基求某个向量被向量组线性表示的方案数

根据上文等价向量组增量构造部分中描述的结论,一个向量被原向量组线性表出的方案数为 \(0\)\(2^c\)。为 \(2^c\) 当且仅当该向量能被线性基线性表出。根据线性代数的经典结论,一个向量能被某个线性无关向量组线性表出当切仅当加入该向量后仍然线性无关,即尝试将该向量插入向量组即可判断能否被线性基线性表出。

线性基求结果小于某个定值的线性表示数量

该问题和求线性基第 \(k\) 小线性表示等强。依然是在线性基上贪心,高位向低位贪心的过程中总是尝试将维护的值和给出的定值变得尽量相等。

线性基解决无向图上最大异或和路径问题

来源:WC2011 最大 XOR 和路径。

给出一张 \(n\) 个点 \(m\) 条边的无向图,找到一条 \(1\rightarrow n\) 的路径(无需简单),使其异或和最大。

考虑一条路径走两次显然不会对答案产生任何影响,因此找到任意一条 \(1\rightarro n\) 的路径,设异或和为 \(v\),存在某一个回路异或和为 \(x\),我们总可以将该回路加入到路径中,即总能选出异或和为 \(v\oplus x\) 的路径,从该路径上的任意一点走到回路再走回来即可。

任取 \(1\rightarrow n\) 的路径,设权值为 \(v\),构造每个回路的异或和张成空间的线性基,答案即为 \(v\) 异或线性基能得到的最大值。

设根据此方法得到的答案为 \(ans'\),真实答案为 \(ans\)\(ans\ge ans'\) 显然。考虑证明 \(ans\le ans'\),设有一条取到 \(ans'\) 的最优路径,则我们先走最优路径到 \(n\),再沿着得到 \(ans'\) 的路径倒着走回 \(1\),再走回 \(n\),前两者是一个回路,因此会被考虑到。

问题此时转化为求所有回路异或和张成空间的线性基,任意求出原图的一棵生成树 \(T\),考虑一条非树边 \((u,v)\),只考虑所有形如 \((u,v)\) 加上 \(uv\) 简单路径这样形态的回路即可。

证明考虑按照该方法得到的线性基 \(basis'\),及原基 \(basis\)

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

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

相关文章

Communication Efficient Large-Scale Training with Adams Convergence Speed

目录概1-bit Adam1-bit SGD代码Seide F., Fu H., Droppo J., Li G. and Yu D. 1-bit stochastic gradient descent and its application to data-parallel distributed training of speed dnns. 2014.Tang H., Gan S., Awan A. A., Rajbhandari S., Li C., Lian X., Liu J., Zh…

基于粒子群算法的网络最优节点部署优化matlab仿真

1.程序功能描述基于粒子群算法的网络最优节点部署优化,实现WSN网络的节点覆盖最大化。 2.测试软件版本以及运行结果展示MATLAB2022A版本运行 3.核心程序%使用PSO优化剩余WSN节点位置以覆盖洞 Numv = 2*(N); func = @(x)fobjs(x,Rmax,area); Vmin = zeros(Numv,1);…

边坡智能监测识别摄像头

边坡智能监测识别摄像头具备24小时不间断的视频监控能力,可以随时捕捉到边坡的动态变化,并记录所有视频数据。通过深度学习模型,该设备可以自动识别不同类型的异常现象,包括土体位移、裂缝扩展等,大幅提升检测准确率。一旦发现异常情况,系统会立即向相关人员发送警报信息…

AI滴漏监测识别摄像机

AI滴漏监测识别摄像机具备24小时不间断的视频监控能力,可以随时查看现场情况,并记录所有视频数据。一旦检测到液体泄漏,系统会立即向管理人员发送警报信息,以便迅速采取措施进行处理。AI滴漏监测识别摄像机设计坚固,可以在各种复杂环境中稳定工作,包括极端温度、高湿度等…

Fastjson反序列化漏洞原理与漏洞复现

根据这位大佬文章学习 https://blog.csdn.net/Bossfrank/article/details/130100893 Fastjson反序列化 一:json是啥 json是一种格式json全称是JavaScript object notation。即JavaScript对象标记法,使用键值对进行信息的存储。点击查看代码 {"name":"BossFran…

串串全家桶

目前有:马拉车Manacher 用途: 该算法可在 \(O(n)\) 的时间复杂度下求出以每一个点(和缝,即回文串长为偶数的情况)为中心的最长回文串长度。 做法: 前置:定义朴素算法为,对于每一个点为中心的情况,暴力枚举是否可以扩展两边,直到不能扩展,此时得到结果。 代码如下,其…

C#字符串拼接的6种方式及其性能分析对比

前言 在C#编程中字符串拼接是一种常见且基础的操作,广泛应用于各种场景,如动态生成SQL查询、构建日志信息、格式化用户显示内容等。然而,不同的字符串拼接方式在性能和内存使用上可能存在显著差异。今天咱们一起来看看在C#中字符串拼接的常见6种方式及其使用BenchmarkDotNet…

寒假集训专题五:搜索

ESAY1:自然数的拆分 P2404 自然数的拆分问题 题目描述 任何一个大于 \(1\) 的自然数 \(n\),总可以拆分成若干个小于 \(n\) 的自然数之和。现在给你一个自然数 \(n\),要求你求出 \(n\) 的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,…

多模态 AI 怎么玩?这里有 18 个脑洞

在 RTE 开发者社区,我们会和大家一起探索全球最前沿的 Real-Time AI 技术,和最有想法的新兴场景。Google 近期举办了一场名为「MultiModal Hackathon」的限时编程活动,聚焦于 多模态与 Gemini 2.0 的最新能力。活动汇聚了 200 多位开发者,共同探索多模态 AI、实时 AI、生成…

Svelte 最新中文文档翻译(7)—— snippet 与 @render

前言 Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…

基环树 DP:学习笔记

总述 定义 基环树,是一个 \(N\) 个点和 \(N\) 条边的连通图,特征是图中有且仅有一个环。特别的,如果不连通且每个连通块的点数和边数都相等,那么这就是一个基环树森林。 基环树 DP,顾名思义,就是在一个基环树上 DP,或是 DP 的结构类似基环树。相对于正常的树型 DP,一般…

数字孪生如何让GIS场景视效瞬间高大上?带你了解鲸孪生中的GIS系统

GIS与数字孪生的结合非常紧密,而山海鲸可视化作为一个数字孪生平台,也将GIS系统整合在了鲸孪生功能之中。 GIS中包含了大量的数据,例如遥感数据、地形数据、倾斜摄影数据等,能够为数字孪生系统提供非常好的补充。同时,传统的GIS系统整体视觉效果相对较差,与其他模型和数据…