#P50841. 「CTSC2011」无穷图的桥

「CTSC2011」无穷图的桥

题目描述

本题的目标是求一个点数无穷的无向图的桥。 这个无向图具有如下性质:

  1. 这个图是一个连通图;
  2. 这个图的所有节点分为若干层,分别是第 11 层、第 22 层、第 33 层……共有无穷层, 每层共有 nn 个节点。为了描述方便, 以下用 (i,x)(i, x) 表示第 ii 层的 xx 号节点;
  3. 同一层内的节点可以相互连边, 相邻两层的节点之间可以相互连边,除此之外,其他节点之间不能相互连边;
  4. 如果 (i,x)(i, x)(i,y)(i, y) 之间有一条权值为 dd 的边,那么 (j,x)(j, x)(j,y)(j, y) 之间也有一条边,它的权值为 0.9jid0.9^{j-i}d,其中 jj 为任意正整数;
  5. 如果 (i,x)(i, x)(i+1,y)(i + 1, y) 之间有一条权值为 dd 的边,那么 (j,x)(j, x)(j+1,y)(j + 1, y) 之间也有一条边,它的权值为 0.9jid0.9^{j-i}d,其中 jj 为任意正整数。

如下所示的无向图就符合上面的所有性质。

infinite.png

一个点数无穷的无向图是连通的,当且仅当对于图中的任意两个节点都存在一条路径将它们连接起来。而一条边是桥,当且仅当这条边被删去后整个图不连通。

请你编写程序读入这个点数无穷的连通图,求出其中所有桥的权值之和。例如,在上图中,粗线所示的边就是该图唯一的桥,因此上图中桥的权值之和为 11

输入格式

第一行包括三个由空格隔开的非负整数 n,m1,m2n, m_1, m_2
从第二行到第 m1+1m_1 + 1 行,每行有三个正整数 x,y,dx, y, d,表示 (1,x)(1, x)(1,y)(1, y) 之间有一条权值为 dd 的边;
从第 m1+2m_1 + 2 行到第 m1+m2+1m_1 + m_2 + 1 行,每行有三个正整数 x,y,dx, y, d,表示 (1,x)(1, x)(2,y)(2, y) 之间有一条权值为 dd 的边。
每行的三个整数之间都用一个空格隔开。图中两个点 xxyy 之间可能有多于 11 条边连接,一条边连接的两个节点可能相同。

输出格式

只有一行,包含一个实数,即所有桥的权值之和,四舍五入保留两位小数。

样例 1

3 1 3
1 2 4
1 2 5
2 3 3
3 3 1
1.00

这就是问题描述中所举的例子。

1 1 1
1 1 100
1 1 1
10.00

数据范围与提示

测试点编号 nn m1m_1 m2m_2
11 10\le 10 50\le 50
22 104\le 10^4 4×104\le 4\times 10^4
33 3×105\le 3\times 10^5 5×105\le 5\times 10^5 =1=1
474\sim 7 500\le 500
8108\sim 10 5×105\le 5\times 10^5

对于全部数据,d100d\le 100