#lg7212. [JOISC 2020] 有趣的 Joitter 交友

[JOISC 2020] 有趣的 Joitter 交友

AdditionalFile3275.zip

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

标签: 传统 | 时间限制: 3000 ms | 内存限制: 1024 MiB |

题目描述

题目译自 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 天开始,活动结束后每个用户关注其他用户数量和的最大值是多少。

样例 1

输入

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,并且它是总和的可能最大值。

样例 2

输入

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

P7212 [JOISC 2020] ジョイッターで友だちをつくろう

题目背景

Joitter 是一款交友软件。

题目描述

在 Joitter 你可以关注他人,但你不可以关注自己和关注他人两次,即如果关注他人多次只会算作一次。

共有 NN 名新用户,MM 天。

在第 ii 天,用户 AiA_i 会关注用户 BiB_i

同时在关注之后,会举办一场交友活动,活动内容如下:

  1. 选择一个用户 xx
  2. 选择一个被用户 xx 关注的用户 yy
  3. 选择一个用户 zz,要求 zxz\not=xxx 未关注 zzyyzz 互关。
  4. xx 关注 zz
  5. 重复 1,2,3,41,2,3,4,直到选不出合适的三元组 (x,y,z)(x,y,z)

您需要求出,对于每一个 ii,第 ii 天过后的所有关注总数。

输入格式

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

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

输出格式

输出共 MM 行,每一行一个数,第 ii 行表示经过第 ii 天之后的关注总数。

输入输出样例 #1

输入 #1

4 6
1 2
2 3
3 2
1 3
3 4
4 3

输出 #1

1
2
4
4
5
9

输入输出样例 #2

输入 #2

6 10
1 2
2 3
3 4
4 5
5 6
6 5
5 4
4 3
3 2
2 1

输出 #2

1
2
3
4
5
7
11
17
25
30

说明/提示

子任务

对于 100%100\% 的数据,保证 2N1052\le N\le 10^51M3×1051\le M\le 3\times 10^51Ai,BiN1\le A_i,B_i\le NAiBiA_i\not=B_i(Ai,Bi)(Aj,Bj)(A_i,B_i)\not=(A_j,B_j)

子任务编号 NN\le 分值
11 5050 11
22 2×1032\times 10^3 1616
33 8383

说明

本题译自 第 19 回日本情報オリンピック 春季トレーニング合宿 Day 2 T2 ジョイッターで友だちをつくろう