题意简述
给定一个 $n\times n$ 的矩阵 $a$,两个相邻的格子之间的代价,就是两个格子 $a$ 值之差的绝对值。请你找到一个联通块,使得它格子数超过 $\lfloor \dfrac{n^2}{2} \rfloor$ ,并且最大的边权最小。
$n\le 1000$,$a_{i,j}\le 10^6$,对于所有$1\le i,j\le n$
思路框架
比较基础的问题,首先“最大值最小”想到二分,然后对于相邻的两个格子,如果 $a$ 值之差的绝对值 $<=mid$ ,就用并查集合并起来这两个点,最后找并查集里有没有 $size>\lfloor \dfrac{n^2}{2} \rfloor$ 的联通块即珂。
注意:并查集是一维的结构,把二维压缩到一维的方法:$(i,j)\rightarrow (i-1)n+j$
代码
1 |
|