A92838.道路修建

普及/提高-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

在某座城市里,有 nn 个交通枢纽,编号为 11nn

这些枢纽之间可以修建双向道路。如果枢纽 xx 和枢纽 yy 之间有一条道路,那么车辆可以从 xx 直接开到 yy,也可以从 yy 直接开到 xx

目前,城市中已经建成了 mm 条道路,第 ii 条道路连接枢纽 uiu_i 和枢纽 viv_i

现在,城市交通部门希望增加更多的道路,但必须按照以下规则来修建:

  • 规则:选择三个不同的枢纽 x,y,zx, y, z,满足:

    • xxyy 之间已经有一条道路;

    • yyzz 之间已经有一条道路;

    • xxzz 之间没有直接道路。

那么就可以在 xxzz 之间修建一条新的双向道路。

注意:新建的道路之后也可以被用于后续的修建规则中。

按照上述规则,最多能修建多少条新道路?

输入格式

第一行输入两个正整数 n,mn,m (2n2×105,0m2×105)(2\leq n \leq 2\times10^5,0\leq m \leq 2\times 10^5) ,分别表示交通枢纽的数量以及双向道路的数量。

接下来 mm 行,每行两个整数 ui,viu_i,v_i (1ui<vin)(1\leq u_i < v_i \leq n) ,表示第 ii 条道路连接的两个交通枢纽。

输出格式

输出一个整数表示最多可以修建的新道路数量。

输入输出样例

  • 输入#1

    4 3
    1 2
    2 3
    1 4

    输出#1

    3

说明/提示

样例 1 解释

按照规则,最多可以新建 3 条道路:

1 与 2 有道路,2 与 3 有道路,但 1 与 3 没有直接道路 → 新建道路 1–3

1 与 3 有道路(上一步新建),3 与 4 有道路,但 1 与 4 没有直接道路 → 新建道路 1–4

2 与 1 有道路,1 与 4 有道路(上一步新建),但 2 与 4 没有直接道路 → 新建道路 2–4

此时,所有枢纽之间都直接相连,无法再找到满足条件的三元组,操作停止。 总共新建道路数为 3

样例 2 解释

初始没有任何道路(M=0M = 0),则无法找到满足条件的三元组 (X,Y,Z)(X, Y, Z)(因为需要存在两条现有道路 XXYYYYZZ)。 因此,新建道路数量为 0。

首页