#17999. 社交网络服务 (sns.cpp)

社交网络服务 (sns.cpp)

题目描述

在一个社交网络服务(SNS)中,有NN个用户,分别用从11NN的数字标记。

在这个SNS中,两个用户可以成为朋友。友谊是双向的;如果用户X是用户Y的朋友,那么用户Y总是用户X的朋友。

目前,在SNS上有MM对朋友关系,第ii对由用户AiA_iBiB_i组成。

确定以下操作可以执行的最大次数:

操作:选择三个用户 XXYYZZ ,使得 XXYY 是朋友,YYZZ 是朋友,但 XXZZ不是朋友。让 XXZZ 成为朋友。

输入格式

第一行包含两个正整数 NNMM,表示有 NN 个用户,MM 对朋友关系

接下来 MM 行,每行描述第 ii 对朋友关系。

输出格式

一行一个整数,表示答案。

4 3
1 2
2 3
1 4
3

样例解释 1

三个新的友谊可以如下产生:

  1. 用户11与用户33成为朋友,用户33是他们的朋友(用户22)的朋友。
  2. 用户33与用户44成为朋友,用户44是他们的朋友(用户11)的朋友。
  3. 用户22与用户44成为朋友,用户44是他们的朋友(用户11)的朋友。

不会有四个或更多的新友谊产生。

3 0
0
10 8
1 2
2 3
3 4
4 5
6 7
7 8
8 9
9 10
11

数据范围与约定

  • 对于 40%40\% 的数据,1N10001 \leq N \leq 1000
  • 对于 100%100\% 的数据,$1 \leq N \leq 2 \times 10^5, 0 \leq M \leq 2 \times 10^5, 1 \leq A_i < B_i \leq N$ 数据保证没有自环。注意,重复的边算一条边。