CF1994F.Stardew Valley

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

Pelican Town 有 nn 个房屋,通过 mm 条双向道路相连。有些道路上站着 NPC。农夫 Buba 需要走过每一条有 NPC 的道路,并与他们交谈。

请帮助农夫找到一条满足以下条件的路线:

  • 路线从某个房屋出发,沿着道路行走,最终回到同一个房屋。
  • 路线不会重复经过任何一条道路(无论方向)。
  • 路线恰好经过每一条有 NPC 的道路一次。

注意,路线可以经过没有 NPC 的道路,并且不需要使路线最短。保证仅通过有 NPC 的道路可以从任意房屋到达任意其他房屋。

输入格式

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

每个测试用例的第一行包含两个整数 nn 和 mm(2≤n≤5⋅105,1≤m≤5⋅1052 \leq n \leq 5 \cdot 10^5, 1 \leq m \leq 5 \cdot 10^5),分别表示 Pelican Town 的房屋数和道路数。

接下来的 mm 行,每行包含三个整数 uu、vv 和 cc(1≤u,v≤n,c=0/11 \leq u, v \leq n, c = 0/1),表示道路的两个端点和该道路上是否有 NPC。如果 c=1c = 1,则该道路上有 NPC;如果 c=0c = 0,则该道路上没有 NPC。

图中可能存在重边和自环。如果有多条有 NPC 的重边,路线必须分别经过每一条。

保证仅通过有 NPC 的道路可以从任意房屋到达任意其他房屋。

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

输出格式

对于每个测试用例,如果无解,输出 "No"(不带引号)。

否则,输出 "Yes"(不带引号),然后输出 kk —— 路线经过的道路数。下一行输出 k+1k + 1 个数字,表示路线经过的房屋编号,按顺序输出。注意,首尾房屋编号应相同,因为路线是一个回路。

如果有多种答案,可以输出任意一种。

输出时字母大小写均可(例如 "yEs"、"yes"、"Yes"、"YES" 都视为正解)。

输入输出样例

  • 输入#1

    3
    3 2
    1 2 1
    2 3 1
    3 3
    1 2 1
    1 3 1
    2 3 0
    5 9
    1 2 0
    5 2 1
    5 4 1
    5 1 1
    2 3 1
    5 2 1
    4 1 0
    4 3 0
    5 2 0

    输出#1

    NO
    YES
    3
    1 2 3 1 
    YES
    7
    1 2 5 4 3 2 5 1

说明/提示

注意,在第三个测试用例中,存在多条 (5,2)(5, 2) 的重边。你必须分别走过这两条道路。

由 ChatGPT 4.1 翻译

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

首页