AT_code_festival_2017_qualb_c 3 Steps

题目描述

りんごさん有一个包含 $N$ 个顶点的连通无向图。在这个图中已经存在 $M$ 条边,第 $i$ 条边连接顶点 $A_i$ 和顶点 $B_i$。 りんごさん打算通过以下操作向图中添加边: - 操作:选择一对满足 $u \neq v$ 的顶点 $u$ 和 $v$,使得从顶点 $u$ 出发恰好经过 $3$ 条边可以到达顶点 $v$,并在顶点 $u$ 和顶点 $v$ 之间添加一条边。如果顶点 $u$ 和顶点 $v$ 之间已经有边,则不能再添加这条边。 请你计算りんごさん最多可以添加多少条边。

输入格式

输入以以下格式从标准输入读入。 > $N$ $M$ > $A_1$ $B_1$ > $A_2$ $B_2$ > $\vdots$ > $A_M$ $B_M$

输出格式

输出可以添加的边的最大数量。

说明/提示

## 限制条件 - $2 \leq N \leq 10^5$ - $1 \leq M \leq 10^5$ - $1 \leq A_i, B_i \leq N$ - 不存在重边和自环 - 给出的图保证是连通的 ## 样例说明 1 如下图,可以添加 $4$ 条边,无法再继续添加边。 ![](https://img.atcoder.jp/code-festival-2017-qualb/6e99dccc06ac8b14d9ca2e297524bc0c.png) ## 样例说明 2 例如,按照如下顺序添加边,则可以添加 $5$ 条边。 - 在顶点 $5$ 与顶点 $3$ 之间添加一条边。 - 在顶点 $5$ 与顶点 $2$ 之间添加一条边。 - 在顶点 $4$ 与顶点 $1$ 之间添加一条边。 - 在顶点 $4$ 与顶点 $2$ 之间添加一条边。 - 在顶点 $4$ 与顶点 $3$ 之间添加一条边。 由 ChatGPT 5 翻译