CF475E Strongly Connected City 2

题目描述

想象有一座城市,这座城市有 $n$ 个路口和 $m$ 条街道。路口编号从 $1$ 到 $n$。 为了提高交通流量,市长决定将每条街道改为单行道。这意味着在连接路口 $u$ 和 $v$ 的街道上,交通只能从 $u$ 到 $v$,或只能从 $v$ 到 $u$ 单向通行。 现在的问题是,需要为这些街道指定单向通行的方向,使得能够到达的点对 $(u, v)$ 的数量最大,其中 $1 \le u, v \le n$,且要求从 $u$ 出发经过指定方向的街道能够到达 $v$。你的任务是找出最大可能的此类点对数量。

输入格式

第一行输入包含两个整数 $n$ 和 $m$,表示城市的路口数和街道数。 接下来的 $m$ 行,每行包含两个整数 $u$ 和 $v$($u \ne v$),表示城市中的一条街道连接 $u$ 和 $v$ 两个路口。 任意两路口之间最多有一条街道。保证在市长做出单行决策前(即所有街道为双向时),任意路口之间都可以互相到达。

输出格式

输出能够到达的点对 $(u,v)$ 的最大数量。单向后的图中,要求从 $u$ 可以经过若干条单向道路到达 $v$。

说明/提示

在第一个样例中,如果市长把第一条和第二条街道的方向都指向路口 $1$,第三条和第四条街道都指向相反方向,则可以到达的点对数有 $13$ 个,即 $\{(1,1),(2,2),(3,3),(4,4),(5,5),(2,1),(3,1),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)\}$。 由 ChatGPT 5 翻译