P7243 最大公约数

题目背景

  “寻求最大公约数是人民民主的真谛。……”   初秋,从枝丫滴下的阳光,柔和,在教室的窗棱溅起,润湿晨读的少女的脸颊。   “阿绫,阿绫”,天依低俯身子,八字辫耷拉在竖起的课本沿,“我们的最大公约数是多少呢?”   “一定不小吧”,左手悄悄捏捏天依的小臂,“比如呀,有一个公因子,叫做‘你喜欢我,我也喜欢你’。”

题目描述

相反,人际圈形形色色,公约数小得可怜,似乎很难保持自己的个性因而变成无趣的人呢。 现在把人际抽象成一个 $n \times m$ 的矩形,每个人初始的个性为 $a_{i,j}$。从第二天开始,每个人会与上下左右四个人(如果存在)建立人际关系,其个性变为昨天自己和四周人个性的最大公约数。那么对于第 $x$ 行第 $y$ 列的人,在多少天后他的个性会变为 $1$ 呢? ---- #### 简化题意 有一个 $n \times m$ 的矩阵 $a$。对一个矩阵进行变换,定义为将这个矩阵内的所有元素变为其上下左右四个元素(不存在则忽略)及自身的最大公约数。询问 $a_{x,y}$ 在进行最少多少次变换之后会变成 $1$。如果可以使 $a_{x,y}$ 经过若干次变换变成 $1$,输出其中最小的次数;否则输出 $-1$。

输入格式

第一行两个整数 $n,m$,表示矩阵的行数和列数。 接下来 $n$ 行,每行 $m$ 个整数,第 $i$ 行第 $j$ 列的整数 $a_{i,j}$ 描述了该位置的人的初始个性。 接下来一行两个整数 $x,y$,表示某个指定的人的位置。

输出格式

一行一个整数 $d$,表示第 $x$ 行第 $y$ 列的人的个性会在 $d$ 天后变为 $1$;**特别地**,若永远不会变为 $1$,应输出 $-1$。

说明/提示

#### 样例解释 3 第一天的个性矩阵(也就是最开始的矩阵)为 $$ \begin{pmatrix} 3&2&3\\ 2&3&2\\ 3&2&3 \end{pmatrix} $$ 第二天的个性矩阵为 $$ \begin{pmatrix} 1&1&1\\ 1&1&1\\ 1&1&1 \end{pmatrix} $$ 可见只需要经过一天,$a_{2,2}$ 就会变为 $1$,所以答案为 $1$。 #### 数据规模与约定 **本题采用捆绑测试。** 对于 $100\%$ 的数据,$1\le n,m\le 2\times 10^3$,$1\le a_{i,j}\le 10^{18}$,$1\le x\le n$,$1\le y\le m$。 | 子任务 | 分值 | $n,m$ | 特殊限制 | | :----: | :--: | :-----------------: | :--------------------------------: | | 1 | 1 | / | 保证给出的位置个性永远不会变为 $1$ | | 2 | 1 | / | 保证 $a_{x,y}=1$ | | 3 | 3 | $ \le 2$ | / | | 4 | 10 | $ \le 10^2$ | / | | 5 | 30 | $ \le 5\times 10^2$ | / | | 6 | 10 | / | 保证对于所有的 $a_{i,j} \le 2$ | | 7 | 10 | / | 保证 $x$ 与 $y$ 都等于 $1$ | | 8 | 35 | / | / | ------------