#P5870. [SEERC2018] Modern Djinn

[SEERC2018] Modern Djinn

题目描述

你不是一个 leader,你是一个 president。幸运的是,你有一只精灵,能够实现你的愿望。你的其中一个愿望就是假装你的社会中有 democracy。

社会很简单。社会里有 NN 个人,编号从 11NN,一些人“开心”而另一些很平常(“不开心”)。人类这种生物非常奇妙,人们只在别人不开心时才感到开心。人们共有 MM 个愿望,编号从 11MMXYX \rightarrow Y代表 XX 想要 YY 不开心。一个人 XX 是开心的当且仅当他的至少一个愿望得到满足。

Democracy 也没那么复杂。有些人说为了实现 democracy,你需要至少一半的人是开心的(或一半的愿望得到满足),但这不全是事实。我刚才说过,你是一个好的 president,而不是一个好的 leader。你可以通过媒体来定义 democracy。因此,在所有的 MM 个愿望中,你决定实现至少 M/4+1\lfloor M/4 \rfloor +1 个愿望。

剩下的事情就是选出你想实现的愿望,然后精灵会处理好一切。

输入格式

输入包含多组测试数据。第一行包含一个整数 TT,代表测试数据的组数。接下来的输入中会按顺序给出每组测试数据。

在每组测试数据中,第一行包含两个正整数 NNMM,代表社会中人的数量和愿望的数量。接下来 MM 行每行包含两个整数 X,YX, Y,描述了一个愿望:XX 希望 YY 不开心。

输出格式

对于每组测试数据,第一行输出一个整数 KK,代表实现的愿望的数量,第二行输出 KK 个整数,代表实现的愿望编号,输出的顺序不做限制。

2
3 3
1 2
2 3
3 1
4 4
1 2
2 3
3 4
1 4
1
2
2
1 4

提示

【数据范围与限制】

  • 1T10,0001 \leq T \leq 10, 000
  • 2N100,0002 \leq N \leq 100,000
  • 1M200,0001 \leq M \leq 200,000
  • 不存在 XX 希望 XX 不开心这样的愿望。
  • 可能存在多个相同的 XX 希望 YY 不开心的愿望。
  • 每组数据保证解一定存在。
  • 输出任何正确的解都可以。

【样例解释】

第一组测试数据中,我们可以实现最多 11 个愿望,输出任意一个愿望都是可行的。

第二组测试数据中,另外一个可行的解是实现愿望 1,31, 344,最少需要实现 22 个愿望。