#L3355. Railway

    ID: 4251 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>树结构虚树图结构树上倍增数据结构搜索DFS

Railway

题目描述

题目译自 BalticOI 2017 Day1「Railway」

Bergen 基础设施建设部在几年前就有了把所有的城市用铁路连起来的想法。
可惜的是,过了很长时间了,这个计划并没有启动。
所以,基础设施建设部部长就准备重启这个计划,然后把它搞得简单亿点

原定的计划是有 nn 个城市用 n1n-1 条无向铁路连起来,这些铁路的编号为 11n1n-1
现在有 mm 个副部长,每个副部长都认为有一些城市是必须连起来的。
比如说这个副部长想把 aacc 连起来,有两条道路 aa - bbbb - cc,那么副部长的要求等价过来就是选择这两条道路。
现在要找出几条道路是至少 kk 个副部长选择的。
部长就找到了你,想让你找出这几条道路。


输入格式

第一行三个整数 n,m,kn, m, k 代表城市数,副部长数和最少需要满足多少个副部长。
接下来 n1n-1 行每行两个整数 aia_ibib_i 代表第 ii 条铁路是 aia_ibib_i 之间的。
接下来 mm 行首先一个整数 sis_i 代表这个副部长觉得有 sis_i 个城市需要相连,接下来 sis_i 个整数代表副部长觉得哪些城市需要相连。


输出格式

第一行一个整数 rr 代表至少满足 kk 个副部长的铁路有多少条。
第二行 rr 个整数代表要建设编号为哪些的铁路,请输出其升序排列。


样例

输入

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

输出

2
2 3

解释:
33 个副部长的要求如下:

  • 副部长 1:城市 1,3,2,51, 3, 2, 5 需要相连 → 路径上的边为 11-33, 22-33, 33-44, 44-55(对应边编号 1, 2, 3, 4)
  • 副部长 2:城市 6,36, 3 需要相连 → 路径上的边为 66-44, 44-33(对应边编号 4, 3)
  • 副部长 3:城市 3,23, 2 需要相连 → 路径上的边为 22-33(对应边编号 2)

统计每条边被选择的次数:

  • 边 1:1 次
  • 边 2:2 次
  • 边 3:2 次
  • 边 4:1 次
  • 边 5:0 次

至少满足 k=2k=2 个副部长的边为 2 号和 3 号。


数据范围与提示

对于 100%100\% 的数据:

  • 2sin1052 \le s_i \le n \le 10^5
  • 1km5×1041 \le k \le m \le 5 \times 10^4
  • i=1msi=S\sum_{i=1}^m s_i = S,则 S1.5×105S \le 1.5 \times 10^5

详细子任务与附加限制如下:

  • Subtask 1(8 pts):n104n \le 10^4S2×103S \le 2 \times 10^3
  • Subtask 2(15 pts):n104n \le 10^4m2×103m \le 2 \times 10^3
  • Subtask 3(7 pts):每个城市最多是 22 条道路的端点(即树是链)
  • Subtask 4(29 pts):k=mk = msi=2s_i = 2
  • Subtask 5(16 pts):k=mk = m
  • Subtask 6(25 pts):无特殊限制