CF2141H.Merging Vertices in a Graph

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个无向图,最初包含 nn 个顶点和 mm 条边。你可以对该图进行如下操作:

  • 任意选择两个不同的顶点,将它们删除,并插入一个新顶点,使其与所有同时与所选两个顶点相连的顶点建立边。即,如果选择了顶点 uu 和 vv,新顶点为 xx,则对于所有满足 (u,y)(u, y) 和 (v,y)(v, y) 边均存在的顶点 yy,添加新的边 (x,y)(x, y)。

该操作可以进行任意多次,直到图中存在一个顶点与所有其他顶点直接有边相连。一旦出现这样的顶点,过程立即结束。此外,如果最初图中就存在这样的顶点,则不能进行任何操作。

你的任务是统计最少和最多可以进行多少次操作。

输入格式

第一行包含两个整数 nn 和 mm(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5,0≤m≤min⁡(n(n−1)2,2⋅105)0 \le m \le \min(\frac{n(n - 1)}{2}, 2 \cdot 10^5))。

接下来的 mm 行中,第 ii 行包含两个整数 xi,yix_i, y_i(1≤xi,yi≤n1 \le x_i, y_i \le n,xi≠yix_i \ne y_i),表示第 ii 条边的两个端点。任意一对顶点之间至多只有一条边。

输出格式

输出两个整数,分别表示最少和最多可以进行的操作次数。

输入输出样例

  • 输入#1

    5 7
    1 2
    3 2
    2 4
    3 5
    1 4
    5 1
    4 3

    输出#1

    1 4

说明/提示

在第一个样例中,最短的操作序列如下:

  • 选择顶点 11 和 33,新顶点会与 22、44、55 相连,且图中没有其他顶点。

最长的操作序列如下:

  • 选择顶点 11 和 55。记新顶点为 66,它不会与剩下的任何顶点相连。
  • 选择顶点 22 和 44。记新顶点为 77,它会与顶点 33 相连。
  • 选择顶点 77 和 33。记新顶点为 88,它不会与剩下的任何顶点相连。
  • 选择顶点 66 和 88。现在图中只剩下一个顶点,因此它与所有其他顶点相连。

在第二个样例中,图中已经存在与所有其它顶点相连的顶点,因此无法进行任何操作。

在第三个样例中,无论采用何种方式,都需要 199999199999 次操作才能只剩下一个顶点。

由 ChatGPT 5 翻译

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

首页