P15243 [NHSPC 2025] 融合图的直径

题目描述

图形结构 $G=(V, E)$ 包含一个有限的集合 $V(G)$ 作为节点集合,以及一个无序对的集合 $E(G)$ 作为边的集合(如图一)。图形结构有相当广泛的应用,例如:交通路网、蛋白质结构的分析、计划管理评估、都市系统结构分析、半导体芯片设计元件摆放的布线等,使得图形结构一直是数学家和计算机科学家解决问题的好工具。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/03mdsk23.png) 图一 ::: 在数学中,两个集合 $A$ 和 $B$ 的笛卡儿积 (Cartesian product),在集合论中表示为 $A \times B$,是所有可能的有序对组成的集合,其中有序对的第一个对象是 $A$ 的成员,第二个对象是 $B$ 的成员。图形理论学家 $Ray$ 教授研究图形性质多年,他定义两图形 $G$ 与 $H$ 的融合图为一个新的图形结构并以 $G \times H$ 表示,其点集合为 $V(G) \times V(H)$,此图形中若两节点 $(u, v)$ 与 $(u^\prime, v^\prime)$ 相连必须满足: - $u = u^\prime$ 且 $\{v, v^\prime\} \in E(H)$,或 - $v = v^\prime$ 且 $\{u, u^\prime\} \in E(G)$。 图二显示了图一中 $G$ 和 $H$ 的笛卡儿积。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/ug5fo0sk.png) 图二 ::: $Ray$ 教授为了要进一步了解融合图的性质,他定义了一些度量方式:图形中任两节点 $x$ 和 $y$ 的距离是指从 $x$ 到 $y$ 之间,所经过边个数最小的路径其边的个数。若要计算一张图的直径,首先要求得任意两点之间的最短路径,在所有这些最短路径中,取其长度最长者,即是这张图的直径(如图三)。给定两张图形 $G$ 与 $H$,请协助 $Ray$ 教授计算融合图 $G \times H$ 的直径。假如答案大于或等于 $10^9+7$,则输出除以 $10^9+7$ 之后的余数;若没有答案,意即存在两点之间没有路径,则输出 $-1$。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/abb2iovq.png) 图三:此图直径为 $2$ :::

输入格式

$$ \begin{aligned} &n_1 \\ &e_{1,1} e_{1,2} \dots e_{1,n_1} \\ &e_{2,1} e_{2,2} \dots e_{2,n_1} \\ &\vdots \\ &e_{n_1,1} e_{n_1,2} \dots e_{n_1,n_1} \\ &n_2 \\ &e^\prime_{1,1} e^\prime_{1,2} \dots e^\prime_{1,n_2} \\ &e^\prime_{2,1} e^\prime_{2,2} \dots e^\prime_{2,n_2} \\ &\vdots \\ &e^\prime_{n_2,1} e^\prime_{n_2,2} \dots e^\prime_{n_2,n_2} \end{aligned} $$ - $n_1$ 代表图 $G$ 中的节点个数,即 $\left\vert V( G )\right\vert$。 - $e_{i,j}$ 代表图 $G$ 中,$i$ 和 $j$ 是否相连,其中 $e_{i,j}=1$ 代表有相连,$e_{i,j}=0$ 则代表没有相连。 - $n_2$ 代表图 $H$ 中的节点个数,即 $\left\vert V( H )\right\vert$。 - $e^\prime_{i,j}$ 代表图 $H$ 中,$i$ 和 $j$ 是否相连,其中 $e^\prime_{i,j}=1$ 代表有相连,$e^\prime_{i,j}=0$ 则代表没有相连。

输出格式

$$D$$ - 如果直径存在,则 $D$ 代表融合图 $G\times H$ 的直径除以 $10^9+7$ 之后的余数。 - 如果直径不存在,则 $D = -1$。

说明/提示

### 数据限制 * $1 \leq n_1 \leq 2000$。 * $e_{i,j} \in \lbrace 0, 1 \rbrace$。 * $\forall 1 \leq i < j \leq n_1, e_{i,j}=e_{j,i}$。 * 保证图 $G$ 没有自环,也就是 $\forall 1\le i\le n_1, e_{i,i}=0$。 * $1 \leq n_2 \leq 2000$。 * $e^\prime_{i,j} \in \lbrace 0, 1 \rbrace$。 * $\forall 1 \leq i < j \leq n_2, e^\prime_{i,j}=e^\prime_{j,i}$。 * 保证图 $H$ 没有自环,也就是 $\forall 1\le i\le n_2, e^\prime_{i,i}=0$。 ### 评分说明 本题共有四组子任务,条件限制如下所示。 定义 $m_1,m_2$ 依序为图 $G$、图 $H$ 边的个数,也就是 $m_1=\left\vert E(G)\right\vert, m_2=\left\vert E(H)\right\vert$。 每一组可有一或多笔测试资料,该组所有测试资料皆需答对才会获得该组分数。 | 子任务 | 分数 | 额外输入限制 | | :------: | :----: | ------------ | | 1 | 18 | $n_1, m_1 \leq 400$,$n_2=1$ 且 $m_2=0$。 | | 2 | 11 | 保证 $G$ 和 $H$ 都是没有环的连通图。 | | 3 | 25 | $m_1, m_2 \leq 4000$。 | | 4 | 46 | 无额外限制。|