#P11466. [BalticOI 2025]旅游
[BalticOI 2025]旅游
题目描述
托伦拥有众多迷人的旅游景点。我们的导游精心整理了一份清单,列出了市中心 个集合点之间的 条单向步行路线。每条路线编号从 到 ,集合点编号从 到 。每条路线从一个集合点通向另一个集合点,沿途可欣赏一个独特的景点。可能有多条路线经过同一景点,也可能同一对集合点之间有多条路线。我们希望在休息日组织一场精彩的城市游。
一场城市游是由一系列步行路线组成的,每条路线的起点必须是前一条路线的终点,并且最后一条路线的终点必须回到整个行程的起点。
我们认为一场城市游精彩,是指它不会连续两次经过同一景点。也就是说,行程中每两条连续的路线必须展示不同的景点,且首条路线与末条路线展示的景点也要不同。不过,如果非连续的路线经过同一景点,我们并不介意。特别地,同一路线可以在行程中多次经过(但不能连续两次经过)。
你的任务是判断是否可以组织一场精彩的城市游,如果可以,请找出一条。你可以输出任意一条包含不超过 条路线的精彩城市游。保证如果存在精彩城市游,那么一定存在一条不超过 条路线的精彩城市游。
输入格式
第一行包含一个正整数 ,表示测试数据的组数。
每组测试数据的第一行包含两个正整数 和 ,分别表示集合点的数量和步行路线的数量。
接下来的 行描述 条步行路线。第 行包含三个正整数 $(1 \leq x_i, y_i \leq n, x_i \neq y_i, 1 \leq c_i \leq m)$,表示第 条路线从集合点 开始,到集合点 结束,沿途可欣赏景点 。
令 和 分别表示所有测试数据中 和 的总和。保证 。
输出格式
对于每组测试数据,第一行输出 YES
表示可以组织一场精彩城市游,输出 NO
表示不可以。如果可以组织,则第二行首先输出一个正整数 ,表示构成精彩城市游的路线数量,随后输出 个整数 ,用单个空格分隔。这些数字描述了一场精彩城市游,依次经过路线 ,最后回到起点。
5
3 3
1 2 1
2 3 2
3 1 1
3 3
2 1 1
1 3 3
3 1 2
2 2
1 2 2
1 2 1
5 6
1 2 1
2 3 2
3 1 1
1 4 3
4 5 4
5 1 3
4 4
1 3 4
3 2 1
2 3 2
2 3 2
NO
YES
2 2 3
NO
YES
6 3 4 5 6 1 2
YES
4 2 4 2 3
数据范围与提示
详细子任务附加限制及分值如下表所示。
子任务编号 | 附加限制 | 分值 |
---|---|---|
且 | ||
无附加限制 |