CF2029D.Cool Graph

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

给定一个无向图,包含 nn 个顶点和 mm 条边。

你最多可以进行 2⋅max⁡(n,m)2\cdot \max(n,m) 次如下操作:

  • 选择三个不同的顶点 aa、bb、cc,对于每一条边 (a,b)(a,b)、(b,c)(b,c) 和 (c,a)(c,a),执行以下操作:
    • 如果该边不存在,则添加该边。相反,如果该边存在,则删除该边。

当且仅当满足以下条件之一时,称该图为“cool”:

  • 图中没有边,或者
  • 图是一棵树。

你需要通过上述操作使图变为“cool”。注意,你最多只能进行 2⋅max⁡(n,m)2\cdot \max(n,m) 次操作。

可以证明,至少存在一种可行解。

输入格式

每个测试点包含多组测试用例。输入的第一行为一个整数 tt(1≤t≤1041\le t\le 10^4)——表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行为两个整数 nn 和 mm(3≤n≤1053\le n\le 10^5,0≤m≤min⁡(n(n−1)2,2⋅105)0\le m\le \min\left(\frac{n(n-1)}{2},2\cdot 10^5\right))——表示顶点数和边数。

接下来 mm 行,每行包含两个整数 uiu_i 和 viv_i(1≤ui,vi≤n1\le u_i,v_i\le n)——表示第 ii 条边连接的两个节点。

保证所有测试用例中 nn 的总和不超过 10510^5,mm 的总和不超过 2⋅1052\cdot 10^5。

保证给定的图中没有自环和重边。

输出格式

对于每个测试用例,第一行输出一个整数 kk(0≤k≤2⋅max⁡(n,m)0\le k\le 2\cdot \max(n, m))——表示操作次数。

接下来输出 kk 行,每行包含三个不同的整数 aa、bb、cc(1≤a,b,c≤n1\le a,b,c\le n)——表示你在第 ii 次操作中选择的三个顶点。

如果有多种方案,输出任意一种均可。

输入输出样例

  • 输入#1

    5
    3 0
    3 1
    1 2
    3 2
    1 2
    2 3
    3 3
    1 2
    2 3
    3 1
    6 6
    1 2
    1 6
    4 5
    3 4
    4 6
    3 6

    输出#1

    0
    1
    1 2 3
    0
    1
    1 2 3
    3
    1 3 6
    2 4 5
    3 4 6

说明/提示

在第一个测试用例中,图已经是 cool 的,因为没有边。

在第二个测试用例中,经过唯一的一次操作后,图变成了一棵树,因此是 cool 的。

在第三个测试用例中,图已经是一棵树,因此是 cool 的。

在第四个测试用例中,经过唯一的一次操作后,图中没有边,因此是 cool 的。

在第五个测试用例中:

操作编号 操作前的图 操作后的图 11 22 33 注意,在第一次操作后,图已经变成了 cool 的,后面两次操作是多余的。只要最终图仍然是 cool 的,这也是一个合法答案。

由 ChatGPT 4.1 翻译

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

首页