bzoj#P2307. [Ctsc2011]无穷图的桥

[Ctsc2011]无穷图的桥

题目描述

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

  1. 这个图是一个连通图
  2. 这个图的所有节点分为若干层,分别是第 11 层、第 22 层、第 33\cdots 共有无穷层,每层共有 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,其中 j 为任意正整数。
  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 为任意正整数。

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

Failed loading image.

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

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

输入格式

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

输出格式

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

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

样例说明 1

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

1 1 1
1 1 100
1 1 1
10.00

数据规模与约定

数据编号 nn m1m_1 m2m_2
1 10\leq10 50\leq50
2 10000\leq10000 40000\leq40000
3 300000\leq300000 500000\leq500000 =1=1
4~7 500\leq500
8~10 500000\leq500000

对于 100%100\% 的数据,d100d\leq 100

题目来源

Day2