#HK3275. 「JOISC 2020 Day2」有趣的 Joitter 交友

「JOISC 2020 Day2」有趣的 Joitter 交友

题目描述

题目译自 JOISC 2020 Day2 T2「ジョイッターで友達をつくろう / Making Friends on Joitter is Fun

Joitter\texttt{Joitter} 是一款社交软件,你可以在这里和你的朋友分享你的高光时刻。

Joitter\texttt{Joitter} 中,你可以关注别的用户。举例来说,当用户 aa 关注了另外一个用户 bb ,用户 aa 可以在时间轴上阅读用户 bb 的帖子。在这种情况下,用户 bb 有可能关注用户 aa ,也可能不关注用户 aa 。当然,用户 aa 不能关注 Ta 自己或者关注用户 bb 超过一次。

一共有 NN 个用户已经开始使用 Joitter\texttt{Joitter} ,一开始他们没有关注任何其他用户。

从现在起,持续 MM 天,在第 ii 天会发生用户 AiA_i 关注用户 BiB_i 的事件(1iM1 \le i \le M)。

Joitter\texttt{Joitter} 官方正在计划在这 MM 天中举行一场活动,这场活动有如下的步骤:

  1. 选择一个用户 xx
  2. 同时选择一个被 xx 关注的用户 yy
  3. 选择一个用户 zz ,要求满足 zz 不是 xxxx 没有关注 zz ,且 yyzz 互相关注。
  4. xx 关注 zz
  5. 重复上述步骤,直到无法选出三元组 (x,y,z)(x,y,z)

Joitter\texttt{Joitter} 官方仍然还没有决定何时开始举办这个活动。所以他们想要知道,i[1,m]\forall i \in [1,m],若活动在第 ii 天开始,活动结束后每个用户关注其他用户数量和的最大值是多少。

输入格式

从标准输入中读入以下内容:

第一行两个整数 N,MN,M

接下来 MM 行,每行两个整数 Ai,BiA_i,B_i

输出格式

输出 MM 行到标准输出,第 ii 行输出若活动在第 ii 天开始,活动结束后每个用户关注其他用户数量和的最大值是多少。

4 6
1 2
2 3
3 2
1 3
3 4
4 3
1
2
4
4
5
9

第一天,用户 11 关注了用户 22。在这天活动结束的话,没有任何其他用户会关注其他人。所以总和是 11

第二天,用户 22 关注了用户 33。在这天活动结束的话,没有任何其他用户会关注其他人。所以总和是 22

第三天,用户 33 关注了用户 22。在这天活动结束的话,用户 11 会关注用户 33。所以总和是 44,并且它是总和的可能最大值。

第四天,用户 11 关注了用户 33。在这天活动结束的话,没有任何其他用户会关注其他人。所以总和是 44

第五天,用户 33 关注了用户 44。在这天活动结束的话,没有任何其他用户会关注其他人。所以总和是 55

第六天,用户 44 关注了用户 33。在这天活动结束的话,用户 11 会关注用户 44,用户 22 会关注用户 44,用户 44 会关注用户 22。所以总和是 99,并且它是总和的可能最大值。

6 10
1 2
2 3
3 4
4 5
5 6
6 5
5 4
4 3
3 2
2 1
1
2
3
4
5
7
11
17
25
30

数据范围与提示

对于所有数据,2N105,1M3×1052\le N\le 10^5,1\le M\le 3\times 10^5,保证:

  • 1Ai,BiN (1iM)1\le A_i,B_i\le N\ (1\le i\le M)
  • AiBi (1iM)A_i\neq B_i\ (1\le i\le M)
  • (Ai,Bi)(Aj,Bj) (1i<jM)(A_i,B_i)\neq (A_j,B_j)\ (1\le i\lt j\le M)

详细子任务及附加限制如下表:

子任务编号 附加限制 分值
11 N50N\le 50 11
22 N2×103N\le 2\times 10^3 1616
33 无附加限制 8383