#P16429. pm14285最小非约数的期望

pm14285最小非约数的期望

题目背景

勇者在一座古老遗迹中发现了一块由数字符文组成的矩阵。每次启动遗迹机关时,机关都会随机选出两个矩形区域,并把其中出现过的所有数字组合起来。勇者需要根据这些数字的最小公倍数,判断第一个无法整除它的正整数。

由于两个矩形区域都是随机选择的,勇者希望你计算这个整数的期望值。

题目描述

一个矩阵的子矩阵是矩阵中任意一个非空、连续的矩形区域。换言之,每个子矩阵由一个非空的连续行区间和一个非空的连续列区间唯一确定。

给定一个由正整数组成的 n×mn\times m 矩阵,进行如下过程:

  1. 从矩阵的所有子矩阵中等概率随机选择一个子矩阵 AA
  2. 再次从矩阵的所有子矩阵中等概率随机选择一个子矩阵 BBBB 可以与 AA 相同;
  3. 设集合 SS 为至少在 AABB 中出现过的所有不同数字组成的集合;
  4. XX 为集合 SS 中所有数字的最小公倍数;
  5. YY 为不能整除 XX 的最小正整数。

请计算 YY 的期望值。

矩阵中的每个元素使用一个字符编码:

  • 字符 19 分别表示整数 1199
  • 字符 AZ 分别表示整数 10103535
  • 字符 az 分别表示整数 36366161

输入格式

第一行包含两个整数 n,mn,m,表示矩阵的行数和列数。

接下来 nn 行,每行包含一个长度为 mm 的字符串,表示矩阵的一行。

输出格式

输出一个实数,表示 YY 的期望值。

当你的答案与标准答案的绝对误差或相对误差不超过 10910^{-9} 时,视为正确。

数据范围

对于所有测试数据:

  • 1n,m501\le n,m\le 50
  • 每个输入字符均为 19AZaz 之一。

样例 1

输入

2 2
11
11

输出

2.0

说明

无论选择哪两个子矩阵,集合 SS 都只包含数字 11,因此 X=1X=1,不能整除 XX 的最小正整数为 22

样例 2

输入

1 3
234

输出

4.5

样例 3

输入

1 4
4356

输出

5.4

样例 4

输入

2 2
12
11

输出

2.691358024691358

样例 5

输入

2 4
2345
AEa9

输出

6.34

样例 6

输入

2 6
ABC2DE
abc3de

输出

6.668430335097002

提示

一个 n×mn\times m 矩阵共有

n(n+1)2m(m+1)2\frac{n(n+1)}{2}\cdot\frac{m(m+1)}{2}

个不同的非空子矩阵,每个子矩阵被选中的概率相同。