CF446D 题解
题意
给定一张 \(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\) 的,可以通过。
于是此题解决。
CF446D 题解的更多相关文章
- 【CF446D】DZY Loves Games 高斯消元+矩阵乘法
[CF446D]DZY Loves Games 题意:一张n个点m条边的无向图,其中某些点是黑点,1号点一定不是黑点,n号点一定是黑点.问从1开始走,每次随机选择一个相邻的点走过去,经过恰好k个黑点到 ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- npm报错最好的办法就是删掉依赖然后重装
之前有个node工程,现在要新增antd主题,那得增加安装 craco 并修改 package.json 里的 scripts 属性 改吧改,安装一直报错: Cannot find module 'w ...
- python 获取docker容器内存使用率
# -*- encoding: utf-8 -*- from subprocess import Popen, PIPE, STDOUTimport time def Run_Cmd(cmd): # ...
- 2022-05-19内部群每日三题-清辉PMP
1.项目经理与项目相关方开会,获得关于如何最好地向施工现场输送用品的信息和知识.这使用的是哪种沟通方法类型? A.交互式沟通 B.内部沟通 C.拉式沟通 D.推式沟通 2.一个国际团队被分配到一个项目 ...
- 【随手记】Burp Suite 设置HTTP2
Burp Suite 设置HTTP2
- pgsql计算占比
SELECT len/sum(len)over(partition by road_id) param from road_jcpd_section
- vim学习小结
参考书籍<Linux 从入门到精通>第二版(刘忆智 等编著) Vim编辑器 背景:Vim的设计哲学就是让使用者能够在主键盘区完成所有工作. vim是vi的增强版本,vim分为插入和命令两种 ...
- vue项目打包后的文件如何在本地访问
你是不是一直存在个困惑?vue项目build出来的dist文件夹下index.html直接点开始控制台一顿报错.今天咱就给他治服. 解决方案就是本地启动一个node服务.详细步骤如下: 创建项目 np ...
- AgilePoin规则执行
我在写窗体规则时,明明默认值已经绑定,但是在页面加载时规则并没有起作用,导致改隐藏的没隐藏,该显示的不显示.找了半天,发现规则设置时可选择执行事件. 设置在页面加载时执行规则后,发现还是不能正确显隐组 ...
- java中的Filter(过滤器)和Intercepter(拦截器)的认知
一.过滤器的配置 首先,从认知方面看,如果自己真的对Filter和Intercepter 不熟悉或者忘记的话可以自己在IDEA中编写Demo进行查看两个的区别,这也是自己动手去认知的过程.首先从Fil ...
- Python 安装使用cx_Oracle操作Oracle数据库
cx_Oracle 是一个能够访问 Oracle 数据库的 Python 扩展模块.它符合 Python 数据库 API 2.0 规范,并增加了相当多的内容和几个排除项.Python 连接使用Orac ...