2019湖南省赛H题——概率转移&&逆矩阵
题意
Bobo有一个 $n+m$ 个节点的有向图,编号分别为 $1 \sim n$,他还有一个 $n$ 行 $n+m$ 列的矩阵 $P$。
如果在 $t$ 时刻他位于节点 $u(1 \leq u \leq n)$,那么在 $(t+1)$ 时刻他在节点 $v$ 的概率为 $P_{u,v}/10000$;
如果在 $t$ 时刻它位于节点 $u(u > n)$,那么在 $(t+1)$ 时刻他在节点$u$ 的概率是1.
0时刻Bobo位于节点1,求无穷久之后,它位于节点 $(n+1), (n+2), ..., (n+m)$ 的概率。
分析
求无穷久的情况,要么进入循环,要么像等比数列求和一样收敛于某个数,总不可能一步一步模拟吧。
套路一波,用向量 $D_i = (d_1, d_2, ...,d_{n+m})$ 表示移动 $i$ 次之后在各个点的概率。
易知,$d_1 = d_1*P_{1,1} + d_2*P_{2,1} + ..+ d_{n+m}*P_{n+m, 1}$,同理可得 $d_2, d_3,..,d_{n+m}$,这样的转移可以写成矩阵的形式
将输出的 $n$ 行 $n+m$ 列,根据题意,可在左下补上全0,右下补上单位矩阵,得到矩阵 $X$,
则 $D_n = D_{n-1}*X, \ D_1=(1, 0, 0,..., 0)$.
即 $D_n = D_0 * X^n$.
由分块矩阵的知识,将 $X$ 写成4个子矩阵:左上角(n * n)部分为A,右上角(n * m)部分为B,左下角(m * n)部分是零矩阵,右下角(m * m)部分为单位矩阵E:
$$x = \begin{bmatrix}
A & B\\
0 & E
\end{bmatrix}$$
算一下容易发现:
$$x^n = \begin{bmatrix}
A^n & (B+AB+...+A^{n-1}B)\\
0 & E
\end{bmatrix}$$
当 $n$趋于无穷大时,结合实际意义,$A^n=0$.
根据等比数列的求和公式,得到:
$$B+AB+...+A^{n-1}B = \frac{E-A^n}{E-A}*B$$
因为 $n$ 趋于无穷,所以
$$\frac{E-A^n}{E-A}*B = \frac{E}{E-A} *B = (E-A)^{-1}*B$$
利用高斯消元,O(n^3)复杂度得到该逆矩阵。
这样就求出了 $n$ 取余无穷大时 $X^n$ 的值,与 $D_0$ 相乘,就得到了答案。
参考链接:https://blog.csdn.net/qq_43202683/article/details/100170570
2019湖南省赛H题——概率转移&&逆矩阵的更多相关文章
- hdu6578 2019湖南省赛D题Modulo Nine 经典dp
目录 题目 解析 AC_Code @ 题目 第一题题意是一共有{0,1,2,3}四种数字供选择,问有多少个长度为n的序列满足所有m个条件,每个条件是说区间[L,R]内必须有恰好x个不同的数字. 第二题 ...
- 2013年省赛H题
2013年省赛H题你不能每次都快速幂算A^x,优化就是预处理,把10^9预处理成10^5和10^4.想法真的是非常巧妙啊N=100000构造两个数组,f1[N],间隔为Af2[1e4]间隔为A^N,中 ...
- 2018湖南省赛B题“2018”
题面懒得敲了,反正看这篇博客的肯定知道题面. 比赛时想按约数的一些性质分情况讨论出公式然后在合并,结果单考虑矩阵里出现2018和1009(与2互质,1009出现次数等于2)出现的情况就写了一长串公式, ...
- 2019 ICPC南京站网络赛 H题 Holy Grail(BF算法最短路)
计蒜客题目链接:https://nanti.jisuanke.com/t/41305 给定的起点是S,终点是T,反向跑一下就可以了,注意判负环以及每次查询需要添加边 AC代码: #include< ...
- 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)
2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...
- ZOJ 3822 ( 2014牡丹江区域赛D题) (概率dp)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5376 题意:每天往n*m的棋盘上放一颗棋子,求多少天能将棋盘的每行每列都至少有 ...
- HDUOJ-------2493Timer(数学 2008北京现场赛H题)
Timer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- Sdut 2409 The Best Seat in ACM Contest(山东省第三届ACM省赛 H 题)(模拟)
题目描述 Cainiao is a university student who loves ACM contest very much. It is a festival for him once ...
- 2017CCPC中南地区赛 H题(最长路)
题目地址:202.197.224.59/OnlineJudge2/ 来自湘潭大学OJ. 这里用到了一个树的直径(树中的最长边)的结论:当你找到一棵树的最长边后,这个树中所有点的最长边必定和这条边的两个 ...
随机推荐
- [译] Go语言测试进阶版建议与技巧
阅读本篇文章前,你最好已经知道如何写基本的单元测试.本篇文章共包含3个小建议,以及7个小技巧. 建议一,不要使用框架 Go语言自身已经有一个非常棒的测试框架,它允许你使用Go编写测试代码,不需要再额外 ...
- 「雅礼集训 2017 Day1」字符串 SAM、根号分治
LOJ 注意到\(qk \leq 10^5\),我们很不自然地考虑根号分治: 当\(k > \sqrt{10^5}\),此时\(q\)比较小,与\(qm\)相关的算法比较适合.对串\(s\)建S ...
- c#按指定长度分解数组
在操作数据库时,我们需要注意一点,就是in查询的参数不能超过1000个,否则会报错,所以我们在进行in查询的时候需要对参数数量进行控制: 用于分解数组的扩展方法: /// <summary> ...
- c# mvc使用富文本编辑器数据上传回显问题,图片,附件上传解决方案
1.首先去官网下载编辑器:http://ueditor.baidu.com/website/download.html 我用的是asp.net mvc开发模式所以选的是asp 2.前端页面必须引 ...
- 我的第一个netcore2.2 api项目搭建(三)续
上一章快速陈述了自定义验证功能添加的过程,我的第一个netcore2.2 api项目搭建(三) 但是并没有真正的去实现,这一章将要实现验证功能的添加. 这一章实现目标三:jwt认证授权添加 在netc ...
- mvc中hangfire全局简单配置
public void Configuration(IAppBuilder app) { ConfigureAuth(app); //指定使用Sql ...
- 新版GRANAFA K8S插件 K8S NODE 图表不显示问题解决方法
原文:https://www.wchao.site/archives/granafa-k8s 其他参考:https://blog.csdn.net/bbwangj/article/details/82 ...
- 基于tensorflow的简单鼠标键盘识别
import cv2 as cvimport tensorflow as tfimport numpy as npimport random ##以下为数据预处理,分类为cata,总共样本为cata* ...
- MFC中窗口重绘
搬家于CSDN 2015-05-14 MFC提供了三个函数用于窗口重绘 InvalidateRect(&Rect) Invalidate() UpdateWindow() 当需要更新或者重绘窗 ...
- nodeType属性在vue源码中的使用
每个节点都有一个 nodeType 属性,用于表明节点的类型,节点类型由 Node 类型中定义12个常量表示: nodeType在vue中的应用 在vue编译的过程中需要查找html结构中的双大括号 ...