AT_agc006_f.[AGC006F] Blackout

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

我们有一个 NN 行 NN 列的矩阵。第 ii 行第 jj 列的格子表示为 (i,j)(i,j)。

开始时,有 MM 个格子是黑色,其他格子都是白色。特别地,开始时格子 (a1,b1),(a2,b2),⋯ ,(aM,bM)(a_{1},b_{1}),(a_{2},b_{2}),\cdots, (a_{M},b_{M}) 是黑色。

スヌケ君会按照以下的规则尽可能多的将白色格子涂成黑色:

  • 对于整数 1≤x,y,z≤N1\le x,y,z\le N,如果 (x,y)(x,y) 和 (y,z)(y,z) 都是黑色,那么就把 (z,x)(z,x) 涂黑。

请计算出当再也没有白色格子能被涂黑时,黑色格子的个数。

输入格式

从标准输入输入,格式见下:

第一行包含两个整数 NN 和 MM;

从第二行开始的 MM 行,每行有两个以空格隔开的整数 aia_{i} 和 bib_{i},表示第 ii 个黑色格子的坐标。

输出格式

输出一个整数到标准输出,表示当スヌケ君尽可能多的把格子涂黑之后,黑色格子的个数。

样例解释

样例 1 解释

可以按这样的方法涂黑一个格子:

  • 因为格子 (1,2)(1,2) 和 (2,3)(2,3) 都是黑色而 (3,1)(3,1) 是白色,把 (3,1)(3,1) 涂黑。

样例 2 解释

可以按这样的方法涂黑两个格子:

  • 因为格子 (1,1)(1,1) 和 (1,2)(1,2) 都是黑色而 (2,1)(2,1) 是白色,把 (2,1)(2,1) 涂黑。

  • 因为格子 (2,1)(2,1) 和 (1,2)(1,2) 都是黑色而 (2,2)(2,2) 是白色,把 (2,2)(2,2) 涂黑。

样例 3 解释

很遗憾,没有任何白色格子能被涂黑。

输入输出样例

  • 输入#1

    3 2
    1 2
    2 3

    输出#1

    3
  • 输入#2

    2 2
    1 1
    1 2

    输出#2

    4
  • 输入#3

    4 3
    1 2
    1 3
    4 4

    输出#3

    3

说明/提示

  • 1≤N≤1051\le N \le 10^{5}
  • 1≤M≤1051\le M \le 10^{5}
  • 1≤ai,bi≤N1\le a_{i},b_{i} \le N
  • 各黑格坐标互不相同

输入解题思路,AI测评打分。不知道怎么写?

首页