AT_abc292_e.[ABC292E] Transitivity

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

给定一个有 NN 个顶点、MM 条边的简单有向图,顶点编号为 11 到 NN,边编号为 11 到 MM。第 ii 条边是从顶点 uiu_i 指向顶点 viv_i 的有向边。

你可以进行如下操作,操作次数不限(可以为 00 次):

  • 选择两个不同的顶点 x,yx, y,且当前不存在从 xx 到 yy 的有向边,然后添加一条从 xx 到 yy 的有向边。

请你求出,最少需要进行多少次操作,才能使得图满足以下条件:

  • 对于任意不同的顶点 a,b,ca, b, c,如果存在从 aa 到 bb 的有向边,且存在从 bb 到 cc 的有向边,那么必须存在从 aa 到 cc 的有向边。

输入格式

输入按以下格式从标准输入给出。

NN MM
u1u_1 v1v_1
⋮\vdots
uMu_M vMv_M

输出格式

输出答案。

输入输出样例

  • 输入#1

    4 3
    2 4
    3 1
    4 3

    输出#1

    3
  • 输入#2

    292 0

    输出#2

    0
  • 输入#3

    5 8
    1 2
    2 1
    1 3
    3 1
    1 4
    4 1
    1 5
    5 1

    输出#3

    12

说明/提示

限制条件

  • 3≤N≤20003 \leq N \leq 2000
  • 0≤M≤20000 \leq M \leq 2000
  • 1≤ui,vi≤N1 \leq u_i, v_i \leq N
  • ui≠viu_i \neq v_i
  • 如果 i≠ji \neq j,则 (ui,vi)≠(uj,vj)(u_i, v_i) \neq (u_j, v_j)
  • 所有输入均为整数

样例解释 1

初始时,例如对于顶点 2,4,32, 4, 3,虽然存在从顶点 22 到顶点 44 的有向边和从顶点 44 到顶点 33 的有向边,但不存在从顶点 22 到顶点 33 的有向边,因此不满足条件。此时,添加如下 33 条有向边后即可满足条件:

  • 从顶点 22 到顶点 33 的有向边
  • 从顶点 22 到顶点 11 的有向边
  • 从顶点 44 到顶点 11 的有向边

另一方面,若少于 33 条边则无法满足条件,因此答案为 33。

由 ChatGPT 4.1 翻译

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

首页