Problem
【CTSC2011】幸福路径
Description
有向图有个顶点,点的权值为。现在有一只蚂蚁,从给定的起点出发,沿着图的边爬行。
开始时,它的体力为。每爬过一条边,它的体力都会下降为原来的倍,其中是一个给定的小于的正常数。而蚂蚁爬到某个顶点时的幸福度,是它当时的体力与该点权值的乘积。
我们把蚂蚁在爬行路径上幸福度的总和记为。很显然,对于不同的爬行路径,的值也可能不同。对值的最大可能值很感兴趣,你能帮助他计算吗?
注意,蚂蚁爬行的路径长度可能是无穷的。
Input
每一行中两个数之间用一个空格隔开。
输入文件第一行包含两个正整数,分别表示中顶点的个数和边的条数。
第二行包含个非负实数,依次表示个顶点权值。
第三行包含一个正整数,表示给定的起点。
第四行包含一个实数,表示给定的小于的正常数。
接下来行,每行两个正整数,表示是G的一条有向边。
可能有自环,但不会有重边。
Output
Sample Input
1 | 5 5 |
Sample Output
1 | 18.0 |
HINT
对于的数据,,,,。
Source
Day 1
标签:概率DP
Solution
有点烦人的期望,为什么那么多人用倍增水过去…
以下做法转自将狼踩尽19891101的博客。
观察可知最后一定是走了一条链或一个环或一条链和一个环,所以分开出链和环的最大幸福度。设表示从走步到的最大幸福度,那么表示的情况一定是在环上绕了若干圈造成的。可知绕了这么多圈没有再次到的最大幸福度为。
令,则在这个环上无限绕下去的最大幸福度为
那么从走步到再从开始绕环的最大幸福度为,最终答案为这个值的最大值。
Code
1 |
|