#agc049a. [agc049_a]Erasing Vertices
[agc049_a]Erasing Vertices
问题描述
我们有一个有向图,其中 个顶点从 到 编号。长度为 的 个字符串 表示图中的边。具体来说,如果从顶点 到顶点 有一条边,则 为 1
,否则为 0
。图中没有自环和多重边。
直到图变为空,AtCobear将重复以下操作:
- 均匀随机选择一个(未擦除)顶点(与之前的选择独立)。然后,擦除该顶点以及通过一些边可达的所有顶点。擦除一个顶点也将擦除与之相邻的边。
找出操作次数的期望值。
约束条件
- 是一个由
0
和1
组成的长度为 的字符串。 0
输入格式
输入以以下格式从标准输入中给出:
输出格式
输出操作次数的期望值。当输出的绝对误差或相对误差不超过 时,你的输出将被认为是正确的。
示例输入1
3
010
001
010
示例输出1
1.66666666666666666667
三种情况以相等的概率发生:
-
在第一次操作中选择顶点 ,擦除顶点 、 和 。现在,图为空,我们完成了。
-
在第一次操作中选择顶点 ,擦除顶点 和 。然后,在第二次操作中选择顶点 ,擦除顶点 。现在,图为空,我们完成了。
-
在第一次操作中选择顶点 ,擦除顶点 和 。然后,在第二次操作中选择顶点 ,擦除顶点 。现在,图为空,我们完成了。
因此,操作次数的期望值为 。
示例输入2
3
000
000
000
示例输出2
3.00000000000000000000
总共需要三次操作。
示例输入3
3
011
101
110
示例输出3
1.00000000000000000000
总共需要一次操作。