题意

传送门

给定一张 \(n\) 个点 \(m\) 条边的无向图,每个节点有权值 \(v_i=\) \(0/1\)。角色从节点 \(1\) 开始随机游走,走到 \(n\) 停止。求其经过路径上权值和等于 \(k-1\) 的概率。经过多次算多次。保证 \(v_1=0,v_n=1\)。

\(1 \le n \le 500,1 \le m \le 10^5,2 \le k \le 10^9,1\le \sum v_i \le 101\)。

题解

首先考虑所有 \(v_i\) 都为 \(1\) 的情况。那么就是走 \(k-1\) 步。这个用矩阵快速幂 \(n^3 \log k\) 可以解决。

但此题不一定 \(v_i\) 都为 \(1\),且 \(n^3 \log k\) 会超时。发现 \(v_i=1\) 的节点个数 \(t\) 较小,开始思考 \(t^3 \log k\) 的算法。

我们称 \(v_i=1\) 的点为特殊点。参考上面的思路,我们只需求得从一个特殊点到另一个特殊点且途中不经过其他特殊点的概率即可。

不难想到转移方程:设 \(f_{i,j}\) 为从点 \(i\) 到特殊点 \(j\),且不经过其他特殊点的概率。\(g_{i,j}\) 为从特殊点 \(i\) 到特殊点 \(j\) 的概率。

那么当 \(i\) 为非特殊点时,有 \(\displaystyle f_{i,j}=\frac{\sum_{(u,i)\in E} f_{u,j}}{d_i}\)。当 \(i\) 为特殊点时,有 \(f_{i,i}=1\),\(\forall j \neq i,f_{i,j}=0\)。然后 \(\displaystyle g_{i,j}=\frac{\sum_{(u,i)\in E}f_{u,j}}{d_i}\)。

那么求出 \(f\) 即可。但我们发现 \(f\) 有 \(nt\) 个未知数,高斯消元是 \(n^3t^3\) 的,无法通过。怎么办呢?

发现 \(f\) 对于 \(j\) 是独立的。那么可以降到 \(n^3t\)。但还是无法通过。

复杂度到这里好像陷入了瓶颈。但把方程写出来,仔细观察可以发现对不同 \(j\),方程前面的系数部分是一样的,仅常数项有区别。那么我们想一想高斯消元的过程,可以将系数部分合并。那么矩阵变成了 \(n \times (n+t)\),复杂度是 \(n(n+t)^2\) 的,可以通过。

于是此题解决。

最新文章

  1. java中被各种XXUtil/XXUtils辅助类恶心到了,推荐这种命名方法
  2. 异常处理__try{}__except(EXCEPTION_EXECUTE_HANDLER){}
  3. Cocos2d-x 让精灵随手指移动起来二(简单实现)
  4. 7za 解压文件
  5. xamarin提供在线检查.net代码是否支援xamarin,ios,android
  6. html中编写js的方式
  7. 01-IOSCore - NSString、NSFileManager、NSBundle、StringAndObjectConvert
  8. Mysql双机热备配置(超详细多图版)
  9. wireshark数据包分析实战 第二章
  10. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)
  11. MariaDB配置、集群
  12. Solr搜索引擎入门知识汇总
  13. [LeetCode] 374. Guess Number Higher or Lower_Easy tag: Binary Search
  14. Docker网络及命令
  15. How to transfer developer profile to one mac to another mac
  16. Artistic Style在windows下的使用(C/C++)
  17. python 视频处理,提取视频相关帧,读取Excel
  18. 04: python常用模块
  19. FDMemTable三层提交数据总是不成功的原因
  20. ListView中Item与Checkable子类控件抢焦点问题

热门文章

  1. R代码
  2. killall: command not found
  3. "人生重开模拟器",10分钟轻松搭建!
  4. React Tree树形结构封装工具类
  5. 重写Collections集合的排序比较CompareTo方法
  6. chrome驱动版本与python不一致时
  7. 【Java】BigDecimal
  8. python菜鸟学习: 11. 装饰器的基础用法
  9. 27_wbpack_自定义Plugin
  10. 福昕PDF如何以多个窗口打开文件