SZ#G6MT27. 【GESP强化 六级】道路修复

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB

题目描述

一个国家有 NN 座城市,编号为 11NN,其中城市 11 是首都。城市之间有 N1N-1 条道路,并且这些道路构成一棵树。

每条道路都有一种状态:类型 11 表示道路正常,类型 22 表示道路存在问题。选择一座城市进行整治时,这座城市到首都的唯一简单路径上的所有问题道路都会被修复。

小珅要选择尽可能少的城市进行整治,使每一条类型 22 的道路都能得到修复。为了使输出结果唯一,本题采用下面的固定约定:把城市 11 作为根进行后序处理;如果一条问题道路下方的子树中还没有选择更深的城市,就选择这条道路下端的城市;最后把所有选中的城市按编号从小到大输出。

输入格式

第一行输入一个整数 NN,表示城市数量。

接下来 N1N-1 行,每行输入三个整数 ui,vi,tiu_i,v_i,t_i,表示城市 uiu_i 与城市 viv_i 之间有一条类型为 tit_i 的道路。

输出格式

第一行输出一个整数 kk,表示选择的城市数量。

第二行按编号从小到大输出这 kk 座城市,相邻编号之间用一个空格分隔。如果 k=0k=0,第二行为空行。

6
2 3 2
6 2 2
1 2 1
5 2 1
4 3 1
2
3 6
7
3 1 2
1 7 2
5 2 1
6 5 2
1 2 1
4 3 1
3
3 6 7
8
1 8 2
2 4 1
3 2 1
3 5 2
1 2 2
1 7 2
3 6 2
4
5 6 7 8

数据范围与约定

  • 2N1052\le N\le10^5
  • t{1,2}t\in\{1,2\}
  • 道路构成一棵树