CF1495D BFS Trees

题目描述

我们定义图的生成树为以顶点 $s$ 为根的 BFS 树,当且仅当对于每个节点 $t$,图中 $s$ 到 $t$ 的最短距离等于生成树中 $s$ 到 $t$ 的最短距离。 给定一个图,我们定义 $f(x, y)$ 为该图中同时以 $x$ 和 $y$ 为根的 BFS 树的生成树数量。 给定一个无向连通图,包含 $n$ 个顶点和 $m$ 条边。请计算所有 $f(i, j)$,并对 $998\,244\,353$ 取模。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \le n \le 400$,$0 \le m \le 600$),分别表示图的顶点数和边数。 接下来的 $m$ 行,每行包含两个整数 $a_i$ 和 $b_i$($1 \leq a_i, b_i \leq n$,$a_i < b_i$),表示一条连接 $a_i$ 和 $b_i$ 的无向边。 保证所有边均不相同,且图是连通的。

输出格式

输出 $n$ 行,每行包含 $n$ 个整数。 第 $i$ 行第 $j$ 列输出 $f(i, j) \bmod 998\,244\,353$。

说明/提示

下图描述了第一个样例。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1495D/486abdf550a50f53b4082318f3f6f5d586f1cd1e.png) 红色边组成的树是同时以 $1$ 和 $2$ 为根的 BFS 树。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1495D/013a1802bccfe9c4bb22292e3e88d7aeac59bc95.png) 类似地,其他相邻顶点对的 BFS 树也可以这样生成。 由 ChatGPT 4.1 翻译