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

2025/12/08 分享

续接昨天的讨论,昨天的引理 1 和引理 4 后面看了一下发现是同一个定理,无伤大雅


首先讨论提到的 GESP202509L8T2 :对于一个带权稀疏连通图 \(G = (V, E)\) ,询问每条边从 \(G\) 中删除后得到的图 \(G^{'}\) 中的最小生成树边权和,或者回答不存在生成树。

考虑在 \(G\) 中随意构造一棵最小生成树 \(T\)
如果一条边是非树边,其被删除后得到的 \(G^{'}\) 中最小生成树依然可以是 \(T\)
如果一条边是树边 \(\alpha = \{a, b\}\) ,其被删除后导致 \(T\) 成为两个联通分量 \(T^{'}_1, T^{'}_2\) ,如果存在一条边 \(\beta = \{x, y\}\) 满足 \(x, y\) 分别在两个联通分量中,则只需加入权值最小的那条边即能得到新的最小生成树 \(T^{*}\) ,并且有 \(c(T^{*}) = c(T) - c(\alpha) + c(\beta)\)
进一步地考虑 \(x - y\) 加上 \(\beta = \{x, y\}\) 必然是一个环,由定理“一条边是桥当且仅当它不在任何环内”,若存在非树边 \(\beta = \{x, y\}\) 联通 \(T^{'}_1, T^{'}_2\) ,则会满足 \(\alpha\) 在树中的路径 \(x - y\) 上。
考虑预处理每条非树边 \(\beta = \{x, y\}\) ,剖出树链 \(x - y\) 并对其做区间修改取最小值。则查询一条树边 \(\alpha = \{a, b\}\) ,只需查询其上覆盖的最小非树边权值 \(w(\alpha)\) ,则 \(c(T^{*}) = c(T) - c(\alpha) + c(w(\alpha))\)

树链剖分的时间复杂度为 \(O(|E| \log^{2} |V|)\)


然后昨天同学问了我一个问题,是这样。给定 \(N\) ,求两个整数 \(A, B\),满足 \(0 \leq A, B \leq N\)\(A \oplus B = N\),最大化 \(A + B\) 的值。

第一个想法,如果没有限制 \(max(A, B) \leq N\)
\(N\) 的第 \(i\) 位是 \(1\) ,随便分给 \(A\)\(B\) ,对 \(A + B\) 贡献 \(2^{i}\)
\(N\) 的第 \(i\) 位是 \(0\)\(A\)\(B\) 可以都是 \(0\)\(1\) ,那么让其都为 \(1\) ,对 \(A + B\) 贡献 \(2^{i + 1}\)

考虑进 \(max(A, B) \leq N\) 的限制,只需记 \(N\) 的最高位 \(m1\) 和次高位 \(m2\) 。否则分类讨论。
\(N\) 的第 \(i\) 位是 \(0\) ,当且仅当 \(m2\) 的更高位 \(A\)\(B\) 应该赋 \(0\) ,否则都能赋 \(1\)
\(N\) 的第 \(i\) 位是 \(1\) ,最优方案不受影响,只需把 \(m1\) 分配给 \(A\)\(m2\) 分配给 \(B\) ,更低位随意,则最终满足 \(0 < B < A < N\)
\(0\) 位和 \(1\) 位的贡献都满足条件且最优,此时有 \(A + B\) 最大。

注意这里确实有一个结论 \(A + B = A \oplus B + 2 (A \ AND \ B)\) ,但大多时候比较鸡肋,至少这里用不上。


考虑扩展带权连通图上的贪心构造最小生成树,得到一个新的 Prim 算法。

定理
\(G = (V, E)\) 带权连通图,权函数为 \(c\)\(u\)\(G\) 的任意一个顶点。

  1. 令点集 \(U = \{u\}\) ,边集 \(F = \emptyset\)
  2. 确定一条边权最小的 \(\alpha = \{x, y\}\) 满足 \(x \in U\)\(y \in \overline{U}\) ,将 \(y\) 加入 \(U\)\(\alpha\) 加入 \(F\)

\(T = (U, F)\) ,则 \(T\)\(G\) 上的一棵最小权生成树。

证明
\((U = \{ u \}, F = \emptyset)\) 开始,每次必然能从连通图 \(G = (V, E)\) 中找到一条边 \(\alpha = \{x, y\}\) 满足 \(x \in U, y \in \overline{U}\) 并加入 \(U\) ,算法的第 \(i\) 次执行都会得到一个 \(i + 1\) 个点 \(i\) 条边的树。显然最终 \(T = (U, F)\)\(G\) 的一棵生成树。

接下来的证明主体思路和 \(Kruskal\) 一样。

\(F\) 中的边是 \(\alpha_1, \alpha_2, \cdots, \alpha_{|V| - 1}\) 并且他们会按照这样的顺序放入,令 \(T^{*} = (V, F^{*})\) 是一棵与 \(T\) 有着最多公共边的最小生成树,如果能证明 \(F^{*} = F\) ,则 \(T\) 是一棵最小生成树。

假设 \(F^{*} \neq F\) ,并设 \(\alpha_k\)\(F\) 中放入的第一条不是 \(F^{*}\) 中的边,设 \(T\) 在生成过程中边集为 \(\alpha_1, \alpha_2, \cdots, \alpha_i\) 的树为 \(T_{i} = (U_i, F_i)\)
因为 \(T^{*}\) 是生成树,那么存在一条不是 \(\alpha_{k}\) 的边 \(\beta\) 满足一个顶点在 \(U_{k - 1}\) 中另一个顶点在 \(\overline{U_{k - 1}}\) 中。考虑 \(T^{*}\) 删去 \(\beta\) ,根据定理“\(n \geq 1\) 阶的连通图是树当且仅当它的边数是 \(n - 1\)”,则得到两棵树 \(T^{*}_1, T^{*}_2\) 且点集分别为 \(U_{k - 1}, \overline{U_{k - 1}}\)
显然 \(\alpha_{k}\) 一个顶点在 \(U_{k - 1}\) 中一个顶点在 \(\overline{U_{k - 1}}\) 中, \(T^{*}\) 去除 \(\beta\) 后再加入边 \(\alpha_{k}\) ,则能得到一棵树 \(T^{**}\) 且点集为 \(V\) ,那么 \(T^{**}\) 是一棵 \(G\) 的生成树。
于是有 \(c(T^{**}) = c(T^{*}) - c(\beta) + c(\alpha_{k})\) ,由 \(T^{*}\) 是一棵最小生成树则有 \(c(\beta) \leq c(\alpha_{k})\)
又因为 \(T_{k - 1} = (U_{k - 1}, F_{k - 1})\) 选入 \(\alpha_{k}\) 意味着在所有满足性质“一个顶点在 \(U_{k - 1}\) 另一个顶点在 \(\overline{U_{k - 1}}\) ”的边中 \(\alpha_{k}\) 具有最小权,而 \(\beta\) 也满足这个性质,则 \(c(\alpha_{k} \leq c(\beta))\)

于是 \(c(\alpha_{k}) = c(\beta)\) ,于是 \(T^{**}\) 是一棵最小生成树,且比 \(T^{*}\) 有着比 \(T\) 更多的公共边,这和 \(T^{*}\) 的定义是矛盾的,这说明 \(F^{*} \neq F\) 是不正确的。
\(\square\)


一些同学昨天和今天问的问题。

4.1 对于 \(n \times m\) 的矩形,有多少个子矩形?
大体思路肯定是考虑四条边界线。
组合贡献角度的思路:是枚举两条横线的方案数乘以两条竖线的方案数。结果是 \(\binom{m}{2} \times \binom{n}{2}\)
枚举角度的思路是:枚举横轴上两条竖线间的区间大小 \(i = 1, 2, \cdots, m\) ,则有 \(m + 1 - i\) 个,这可以贡献横轴上的两条竖线的方案数。竖轴上同理。最后利用乘法原理。

4.2 询问字符串 \(str\) 上各个 \((a, b)\) 子序列的个数?
倒序枚举 str 的索引 i 可以维护出 \([i, N]\)\(j\) 字符的个数 \(v_j\) ,考虑对 \(cnt(str_i, j)\) 贡献 \([i + 1, N]\) 部分的答案只需让 \(v_j\) 在更新前做出贡献。

4.3 对于每组物品至多只能选一个的分组式 01 背包如何 dp ?
依然考虑 dp[i][j] 的组合意义是前 \(i\) 组不超过 \(j\) 的价值,其在这个状态空间下显然能且仅能对 dp[i + 1][j + w[i + 1, k]] + v[i + 1, k] 做出贡献,\(k\) 是第 \(i + 1\) 组的某个物品索引。

http://www.gsyq.cn/news/78126.html

相关文章:

  • 深刻理解HTTP和RPC的区别
  • linux 中 socket 文件是什么?和 socket 编程有什么关系?和 TCP/IP 协议栈又有什么关系?
  • 揭秘业务逻辑滥用:API安全中“利用游戏规则”的攻击手法
  • 放弃原容器建立新容器,保存留数据卷且映射
  • Hikvision 考勤机数据提取(3)
  • 2025年折弯机上下模实力厂家推荐榜
  • 阅读笔记四
  • 工程模拟分析软件 Abaqus 2024 免费下载安装教程(含中文版设置+ 激活步骤)
  • 2025新手买钓鱼竿指南:高性价比品牌推荐,避坑看这篇
  • 大模型应用开发LangChain框架 - yi
  • 2025年渔具实测:新款鲫鱼竿超轻硬,高性价比钓鱼竿真靠谱
  • 2025年国产鱼竿十大品牌:优选前十的口碑鱼竿盘点
  • omniinfer vllm v0.9.0整体框架图和pangu7b模型图
  • 过碳酸钠源头工厂在哪里?过碳酸钠直销厂家:含氧量高的过碳酸钠厂家推荐
  • 成膜助剂供应商推荐:实力厂家/批发商货源稳定有保障
  • 决策单调性(四边形不等式)学习笔记
  • 应用 SQLAlchemy 操作单表:以 SQLite 用户表为例的完整实战指南
  • MyBatis参数加解密
  • 基于Hadoop+数据可视化+机器学习随机森林预测算法+智能AI大模型+协同过滤推荐算法的青少年饮食习惯数据分析与可视化平台的设计与实现(精品源码+精品论文+上万材料集+答辩PPT)
  • CF1994G
  • 成膜助剂出口厂商有哪些?有出口资质的成膜助剂供应商名单推荐
  • hive ddl dml hivesql命令大全
  • 杭州刑事案件法律咨询找谁?刑事律师推荐
  • 网络编程
  • 2025常州会计师事务所实力榜:汇丰所以审计创新与税务筹划优势领跑,江苏八城专业服务机构深度解析
  • doc-llm-autotest 基于大模型的文档自动化测试平台:worker服务的可靠性增强
  • TB710FU原厂刷机包下载_CN_ZUI_17.0.04.279_ST_250808
  • Mybatis拦截器原理解析
  • TB331FC原厂刷机包下载_CNZUI_17.0.572_ST_250910
  • TB520FU刷机包_CN_17.0.10.158_ST_250817