P12169 [蓝桥杯 2025 省 C/Python A/Java C] 登山

题目描述

小蓝正在登山,山峰的高度构成 $n$ 行 $m$ 列的正整数矩阵,$a_{i,j}$ 表示第 $i$ 行第 $j$ 列格子 $(i,j)$ 上的山峰的高度。小蓝以一种特别的方式进行登山,如果他此刻在第 $p$ 行第 $q$ 列的格子 $(p,q)$ 上,那么下一步可以选择: 1. 走到格子 $(i,q)$,满足 $a_{i,q} < a_{p,q}$ 且 $i > p$; 2. 走到格子 $(i,q)$,满足 $a_{i,q} > a_{p,q}$ 且 $i < p$; 3. 走到格子 $(p,j)$,满足 $a_{p,j} < a_{p,q}$ 且 $j > q$; 4. 走到格子 $(p,j)$,满足 $a_{p,j} > a_{p,q}$ 且 $j < q$。 小蓝想知道,如果他依次从每一个格子开始出发,按照最优策略,他最高能到达的山峰的高度的平均值是多少?

输入格式

输入的第一行包含两个正整数 $n, m$,用一个空格分隔。 接下来 $n$ 行,每行包含 $m$ 个正整数。其中第 $i$ 行包含 $a_{i,1}, a_{i,2}, \cdots, a_{i,m}$,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个实数表示答案,四舍五入保留正好 $6$ 位小数。

说明/提示

### 样例说明 1 除了从格子 $(1,1)$ 出发以外,其他格子都能到达高度为 $3$ 的山峰,$(1 + 3 + 3 + 3)/4 = 2.5$。 ### 样例说明 2 每个格子能到达的高度: $$\begin{matrix} 4 & 4 & 4 \\ 4 & 4 & 5\end{matrix}$$ 其中 $(1,1)$ 可以先到达格子 $(1,3)$ 再到达格子 $(1,2)$。 ### 评测用例规模与约定 - 对于 $40\%$ 的评测用例,$1 \leq n, m \leq 10^2$; - 对于所有评测用例,$1 \leq n, m \leq 10^4$,$1 \leq n \times m \leq 10^6$,$1 \leq a_{ij} \leq 10^9$。