OI Wiki 树上随机游走:如何求从起点到终点的期望步数

发布时间:2026/9/15 20:43:34

OI Wiki 树上随机游走:如何求从起点到终点的期望步数 OI Wiki 树上随机游走如何求从起点到终点的期望步数【免费下载链接】OI-wiki:star2: Wiki of OI / ICPC for everyone. 某大型游戏线上攻略内含炫酷算术魔法项目地址: https://gitcode.com/GitHub_Trending/oi/OI-wiki任务很具体给出一棵 $n$ 个点、$n-1$ 条边的树和起点 $s$、终点 $t$每一秒棋子从当前点与其相连的边中等概率选一条走到另一端求第一次到达 $t$ 的期望步数。OI Wiki 的图上随机游走页面从网格图、稀疏图、一般图三个角度处理随机游走期望时间问题而树是满足$n$ 个结点$n-1$ 条边的连通无向图这一定义的图见树的基本知识边数与点数同阶正好落入该文档对稀疏图的范围。按文档给出的稀疏图方法求解路径是建立未到达终点的概率转移 → 用 Berlekamp–Massey 求最短递推 → 用生成函数在 $x1$ 处取值得到期望。问题模型把期望写成未结束概率之和页面开头的一般定义是给定起点 $s$、终点 $t$ 的图每秒棋子以给定概率沿出边移动到达终点停止求期望花费时间每秒走一步期望时间即期望步数。答案可写成$$ \sum_{k \geq 0} k \times\left(P^k\right)_{s, t} $$其中 $(P^k)_{s, t}$ 是走了 $k$ 步第一次到达终点的概率。文档同时给出收敛性当图有限且所有点都能到达终点时转移矩阵 $P$ 的特征值都小于 1答案一定收敛。树是连通的任意点都能到达终点这一前提天然满足。为便于计算文档把期望改写成$$ E(t)\sum_{i\geq0}\Pr[ti] $$即只要逐点求出走了 $i$ 步还没到终点的概率再求和就是所求期望。这一步把无限和的问题转成了一个序列问题。建立转移算出前 3n1 项记 $f(i, j)$ 为走了 $i$ 步、当前停留在 $j$、且没有走到过终点 $n$ 的概率页面例题中终点编号为 $n$一般设置下换成终点 $t$ 即可转移为$$ f(i,j)\sum_{(k,j)\in E}\frac{f(i-1,k)}{\deg_k} \quad (j\neq n) $$其中 $\deg_k$ 表示 $k$ 的度数即无向边上按度数等概率选择。由于转移与 $i$ 无关一次转移等价于乘上一个矩阵 $M$写作 $f_{i1}f_i M$。文档引用 Cayley–Hamilton 定理任意 $n$ 阶矩阵的特征多项式是它的零化多项式因此最小零化多项式的次数不超过 $n$。由此 $f$ 的最短递推式长度不超过 $n$序列 $\Pr[ti]\sum_{j1}^{n-1}f(i,j)$ 的最短递推式长度也不超过 $n$。具体的操作是初始状态棋子放在起点页面例题从 $v_1$ 出发按上面的转移直接模拟在 $O(nm)$ 时间求出 $\Pr[t0], \Pr[t1], \cdots, \Pr[t3n]$ 这一串值。用 Berlekamp–Massey 求最短递推Berlekamp–Massey 算法在 OI Wiki 中有独立一页docs/math/berlekamp-massey.md给定长为 $n$ 的数列若其最短递推式阶数为 $m$算法能在 $O(nm)$ 时间内求出数列每个前缀的最短递推式最坏 $mO(n)$即最坏 $O(n^2)$。由于 $\Pr[ti]$ 的最短递推长度不超过 $n$用 BM 算法在 $O(n^2)$ 时间内即可解出该递推式。页面例题的规模是 $n \leq 2000$在此量级下按文档分析序列模拟 $O(nm)$ 加上 BM 的 $O(n^2)$ 可以完成求解。由递推式生成函数求出答案设 $\Pr[ti]$ 的序列为 $a$满足 $i \geq i_0$ 时 $a_i\sum_{j1}^{k}c_j a_{i-j}$记 $a$ 和系数序列 $c$ 的生成函数为 $A(x)$ 与 $C(x)$。文档给出关系$$ A(x)A(x)C(x)A_0(x) $$其中 $A_0(x)$ 由 $ii_0$ 的项决定。移项得$$ A(x)\frac{A_0(x)}{1-C(x)} $$要求的是 $\sum_{i\geq0}[x^i]A(x)$文档指出这个值等于 $A(1)$即把 $x1$ 代入上式就得到期望步数。对树而言 $mn-1$$nm$ 与 $n^2$ 同阶整套方法的总复杂度为 $O(nmn^2)$也就是 $O(n^2)$。取模处理的适用条件页面例题要求答案对 $p$ 取模且 $p$ 是区间 $[10^9,\ 1.01\times10^9]$ 内随机生成的一个质数。文档中代入 $A(1)$ 这一步能成立、分母不会为零依据正是模数是随机质数。也就是说这套生成函数方法在文档中是针对对随机质数取模这一条件给出的文档没有对固定模数例如固定的 $10^97$给出分母非零的说明套用前需要先确认题目模数是否满足文档中的这一条件。结果核对与适用边界收敛性页面证明了所有点都能到达终点时 $P$ 的特征值都小于 1所以 $E(t)\sum_{i\geq0}\Pr[ti]$ 收敛$A(1)$ 计算出的值就是期望本身正确性链条期望改写为未结束概率之和 → BM 给出精确的最短递推 → 生成函数在 $x1$ 的值恰好是该无穷和文档逐步推导不依赖蒙特卡洛模拟复杂度序列模拟 $O(nm)$BM 求解 $O(n^2)$树的情形为 $O(n^2)$。同页的另外两套方法不适用于树网格图方法朴素高斯消元 $O(R^6)$、直接消元 $O(R^4)$、主元法 $O(R^3)$针对的是坐标系网格上的转移一般图方法要求强连通有向图用于对所有 $s\neq t$ 回答期望时间规模 $O(n^3)$。如果题目给的不是一棵树而是任意简单无向连通稀疏图本文的稀疏图方法可以原样使用——页面例题正是这个设定起点 $v_1$求到达 $v_n$ 的期望时间$n\leq2000$答案对随机质数取模。相关文档图上随机游走Berlekamp–Massey 算法树的基本知识【免费下载链接】OI-wiki:star2: Wiki of OI / ICPC for everyone. 某大型游戏线上攻略内含炫酷算术魔法项目地址: https://gitcode.com/GitHub_Trending/oi/OI-wiki创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/15 20:43:34

基于Python+Vue的健身攻略推荐系统全栈开发实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 20:43:34

私有云项目管理软件选型指南:7款自托管工具深度对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 21:23:39

光条提取与亚像素精度:梯度质心与高斯拟合的工程实践

简介:面向激光光条中心提取与亚像素定位需求的计算机视觉实现包,适合自动化测量、机器人导航及结构光三维扫描等场景的研究者与开发者。代码基于梯度质心法定位光条中心,通过亚像素插值细化坐标,并引入高斯拟合抑制噪声、优化光条…

2026/9/15 21:23:39

智谱API Token计费全解析:glm-5.3-flash怎么买怎么用才划算?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 21:23:39

gmsh-sdk-4.0.4 Python网格生成实战:离线安装与参数调优

简介:gmsh是一款开源三维有限元网格生成器,这份Python SDK 4.0.4版资源正是面向需要在Python环境中调用gmsh进行几何建模、网格划分与仿真前处理的开发者,尤其适合计算力学、电磁场模拟等领域的工程与科研人员。压缩包共7个文件,以…

2026/9/15 21:23:39

74LS04与CX20106A构建40kHz超声波测距:原理、电路与程序实现

简介:一份基于51单片机的超声波测距软硬件工程,面向电子技术学习者、课程设计与竞赛参赛者,完整演示了74LS04驱动器与CX20106A接收芯片在测距系统中的应用。压缩包共16个文件、约25KB,既包含C语言源码、Keil工程、启动汇编和HEX可…

2026/9/15 21:23:39

YooAsset资源管理系统:Unity热更新与包体优化实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 21:18:38

SmartDNS 完整指南:5 分钟搭建本地 DNS,解析自动选最快 IP

SmartDNS 完整指南:5 分钟搭建本地 DNS,解析自动选最快 IP 【免费下载链接】smartdns A local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH, DoQ. 一个本地DNS服务器,获取最快的网站IP…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码