bzoj#P2840. 小强的逃跑
小强的逃跑
题目描述
小强建立了一个洞穴,洞穴由 个点、 条有向边组成,可能有自环、重边。每个边有一个体力消耗值。当小强感觉到危险的时候,它会进行低智商的逃跑行为,具体说,是从一个点开始跑,每一步:它有 的概率从这个点钻出洞穴终止逃跑; 的概率沿着从当前点连出的体力消耗值最小的边移动到另一个点(此时,如果有多个连出的边的消耗值一样且都是最小的,小强会选择到达的点的编号比较小的边。如果当前点没有连出的边,它会以相等的概率穿越到一个随机的点,穿越不用体力,具体请见样例解释)。小强想知道,从一个点开始逃跑直到终止,它消耗的体力的期望是多少?还有,洞穴是在动态变化的。每次,某条边的权值可能由原来的数变成另一个数。你要不停地接受修改,同时回答小强的询问。
输入格式
第一行有三个数:两个正整数 ,表示点的个数和边的个数,还有一个实数 ,表示小强终止逃跑的概率。接下来 行,每行三个正整数 ,表示从点 到点 有一条权值为 的有向边。点从 编号到 。接下来一个非负整数 ,表示操作的个数。接下来 行,每行一个操作,是下面的格式之一:0 x y
表示把输入文件中输入的第 条边的权值变成 ;1,x
表示查询当前状态下,从点 开始逃跑,小强消耗的体力的期望是多少。
输出格式
对于输入的每个询问操作,输出一行一个数表示小强从某个点开始逃跑的体力消耗的期望。四舍五入到整数。
3 3 0.1
1 2 1
1 3 1
3 1 1
4
1 1
0 1 2
1 1
1 2
5
9
8
样例说明
这张图开始的时候有 个点, 条边。
在开始状态下:
如果小强在点 ,它会以 的概率跑向点 (消耗体力值 ), 的概率停止;
如果小强在点 ,这个点没有连出的边,所以它会以 的概率穿越到点 , 的概率穿越到点(也就是不动), 的概率穿越到点 , 的概率停止;
如果小强在点 ,它会以 的概率跑向点1(消耗体力值 ), 的概率停止。
为了计算这种情况下小强从点 出发的体力消耗期望,我们设 分别表示小强从点 出发的体力消耗值,那么有:
解这个方程得到 $x=\frac{873}{187},y=\frac{783}{187},z=\frac{954}{187}$。所以,从点 出发的体力消耗的期望是 ,四舍五入之后就是 。
后来,从点 到点 的边的体力值变成了 。这样,小强从点 出发,它就会以 的概率跑向点 , 的概率停止。此时方程变成:
这个方程的解是 。所以,从点 出发的体力消耗的期望是 ,从点 出发的体力消耗的期望是 ,四舍五入之后就是 。
数据规模与约定
对于 的数据,,每条边的体力消耗值为介于 到 的一个正整数。