luogu#P15961. [ICPC 2018 Jakarta R] Boomerangs
[ICPC 2018 Jakarta R] Boomerangs
题目描述
设 是一个有 个顶点和 条边的简单无向图,其中 。若 且 ,则称三元组 为 中的 回旋镖;换句话说,一个回旋镖由两条共享一个公共顶点的边组成。
给定 ,你的任务是在 中找出尽可能多的不相交回旋镖。一个集合 包含不相交的回旋镖,当且仅当 中的每条边在 中至多出现一次(即最多属于一个回旋镖)。你可以输出任意一组有效的不相交回旋镖,但回旋镖的数量必须最大。
例如,考虑一个图 ,其中 个顶点, 条边,$E = \{(1,2), (1,4), (2,3), (2,4), (2,5), (3,4), (3,5)\}$。
:::align{center}
:::
在此示例图中,不相交回旋镖的最大数量为 。包含 个不相交回旋镖的一个示例集合为 $\{\langle 4,1,2 \rangle, \langle 4,3,2 \rangle, \langle 2,5,3 \rangle\}$;在此示例中,不存在包含超过 个不相交回旋镖的集合。
输入格式
输入的第一行包含两个整数: 和 (),分别表示 中的顶点数和边数。接下来的 行,每行包含两个整数: 和 (),表示 中的一条边 。你可以假定每条边在给定列表中至多出现一次。
输出格式
输出的第一行包含一个整数 ,表示 中不相交回旋镖的最大数量。接下来的 行,每行包含三个整数:、 和 (每个整数之间用一个空格分隔),表示一个回旋镖 。输出中的所有回旋镖应互不相交。如果存在多个有效解,你可以输出其中任意一个。
5 7
1 2
1 4
2 3
2 4
2 5
3 4
3 5
3
4 1 2
4 3 2
2 5 3
4 6
1 2
1 3
1 4
2 3
2 4
3 4
3
1 2 3
1 3 4
1 4 2
3 3
1 2
1 3
2 3
1
2 1 3
提示
翻译由 DeepSeek V3.2 完成