#P4006. Genghis Khan the Conqueror

Genghis Khan the Conqueror

题目名称: 哲别将军的守卫问题

题目描述:

成吉思汗(1162-1227),本名铁木真,庙号元太祖,是蒙古帝国的创始人,也是中国历史上最伟大的征服者。在统一了蒙古草原上的许多游牧部落后,成吉思汗建立了一支以铁血纪律、弯刀和火药武装的强大骑兵,成为历史上最令人畏惧的征服者。他扩张帝国,征服了欧亚大陆的大部分地区。下图(来源:维基百科)展示了当时蒙古帝国的疆域。 我们的故事是关于哲别将军的,他是成吉思汗骑兵中最著名的将领之一。有一次,他率领先锋部队入侵一个名为普什图尔的国家。骑兵迅速席卷了普什图尔的所有城市。由于哲别将军的先锋部队兵力不足,这次征服是暂时的且脆弱的,他正在等待成吉思汗的增援。与此同时,哲别将军需要在国家的道路上设置许多守卫,以确保他的部队在每个城市之间能够安全、迅速地传递消息。

普什图尔有 NN 个城市,城市之间有双向道路连接。如果在某条道路上设置守卫,则通过这条道路直接相连的两个城市之间的消息传递是完全安全的。然而,在不同的道路上设置守卫的成本各不相同,这取决于道路的距离、路况以及附近的残余武装力量。哲别已经知道在每条道路上设置守卫的成本。他希望确保任意两个城市之间能够直接或间接安全地传递消息,并且总成本最小。

事情总是会变得更复杂一些。作为一名经验丰富的将军,哲别预测这个国家迟早会发生一次起义,这将恰好使某一条道路的设置成本增加。但他不知道具体是哪一条道路会受到影响,只知道一些可疑的道路成本变化信息。我们假设每种可疑情况发生的概率相同。由于起义发生后,守卫的设置计划需要重新调整以实现最小成本,哲别将军希望根据当前信息立即计算出新的期望最小总成本。

输入格式:

输入不超过 2020 个测试用例。
每个测试用例的第一行包含两个整数 NNMM1N30001 \leq N \leq 30000MN×N0 \leq M \leq N \times N),表示普什图尔的城市数量和道路数量。城市编号为 00N1N-1
接下来的 MM 行中,每行包含三个整数 xix_iyiy_icic_ici107c_i \leq 10^7),表示城市 xix_iyiy_i 之间有一条双向道路,在这条道路上设置守卫的成本为 cic_i。我们保证图是连通的,且图的总成本不超过 10910^9
接下来的一行包含一个整数 QQ1Q100001 \leq Q \leq 10000),表示可疑道路成本变化的数量。
接下来的 QQ 行中,每行包含三个整数 XiX_iYiY_iCiC_i,表示道路 (Xi,Yi)(X_i, Y_i) 的成本可能变为 CiC_iCi107C_i \leq 10^7)。我们保证这条道路一定存在,且 CiC_i 大于原始成本(保证任意两城市之间最多有一条直接相连的道路)。请注意,每种可疑道路成本变化的概率相同。

输出格式:

对于每个测试用例,输出一个实数,表示期望的最小总成本。结果保留 44 位小数。

样例输入 1:

3 3
0 1 3
0 2 2
1 2 5
3
0 2 3
1 2 6
0 1 6
0 0

样例输出 1:

6.0000

提示:

初始的最小成本为 55,即连接城市 0011 以及城市 0022
在第一个可疑情况下,最小总成本增加到 66
第二个情况下仍为 55
第三个情况下增加到 77
因此,期望成本为 (5+6+7)/3=6(5 + 6 + 7) / 3 = 6