Solution Set -「LOCAL」冲刺省选 Round XXXI
前期节奏太懒散,后面发现 C 题是水题都没时间写,提起精神来啊!
A 题卡得比较久,对线性基的理解不够深刻,思来想去半天才把转移系数调对。B 题也卡,走起来就想“怎么优化”而没有深入去研究“求的什么”。C 题哈哈哈哈倍增长剖一个个伪,最后祭了一发暴力,明明那么蠢(而且貌似才做过)的点分的说。
神必的集合
给定 对形如 的限制,求 里有多少个 ,满足 ,(加法即异或),且 里第 大数是 。
,。
按照兔子一贯的坏习惯,不区分二进制数和 里的向量。
我们只需要确定 的基 的数量,就能求出 的数量。对于 的基 ,显然有 。另一方面,不妨把 和 规范化作上三角,也就是异或线性基求出来的那玩意儿。
考虑若 确定,比 小的数的数量 是如何算出来的。方便起见,令 ,显然若 含有 bit ,就表明 从低到高第 个基向量的最高 bit 被 包含。据此,对于任意 ,我们能够判断 能否作为 的从低到高 个基向量的最高 bit。
据此,考虑 DP。令 表示考虑了 bit ,已经选择了前 小的基向量的方案数。当 在这一维有基向量时,这个时候我们只能当然只能 里对应位置上的基向量;否则,我们可以任意取 里一个不与已有的 个基线性相关的向量来扩展基,也可以不把 选入基。形式化地,令 为 能否作为第 个基向量,那么
至少可以做到 。
法阵
给定 以及 次询问,每次给出 ,求 。
。
注意到在固定 时,若有 ,且 ,那么 与 配对必然不如 优秀。因此,有效的 必然在从左到右单调栈时相遇( 弹掉 ,或者 压入 的后面),这样的 仅 对。
既然 很少,我们就去维护 。把询问离线下来挂到左段点上,从右到左扫描 ,对于每个 ,维护此时 的答案。放在线段树上,每次更新差不多就是区间取 ,可以做到 。
旅行
给定含有 个点 条边的无边权无向图,点 有属性 和 ,表示对于所有 ,可以从 花费 的代价走到 。求从 出发到每个点的最小花费。
,,。
这个 范围的提示性太强了,随便拿一棵生成树,树内点分建图,树外边还是向点分一样处理跨过某个点的路径信息,记 ,暴力做复杂度为 ,可以过。
点分部分采用 two-pointers 建图,每次拿出 最小的点,从上次指针划到的位置继续更新,不把图显式地建出来。可以做到 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现