QOJ.ac

QOJ

시간 제한: 1 s 메모리 제한: 64 MB 총점: 130

#13577. Praktični

통계

Ivan 在参加考试时,在以下题目上遇到了困难: “输入一个整数 $N$。求数字 $0.135791113151719 \dots$ 的第 $N$ 位数字……”

为了在下一次补考中成功通过,从而避免留级,他决定通过扮演类似以下任务中的主角来进行练习:

给定一个拥有 $N$ 个节点和 $M$ 个边的无向图。每条边都有一个权值,该权值是一个小于 $10^9$ 的整数。

如果一个简单环(不重复经过节点的环)中所有边的权值按位异或(XOR)之和等于零,则称该简单环是好的

Ivan 可以对图进行若干次操作。一次操作由以下步骤组成:

  • Ivan 选择一个整数 $x$;
  • 然后他选择给定图的边集的一个非空子集;
  • 接着他对所有选中的边应用按位异或 $x$ 的操作(如果某条被选中的边的权值为 $p$,在上述操作后,该边的新权值将变为 $p \oplus x$)。

Ivan 希望得到一个所有简单环都是好的图。同时,他希望用尽可能少的操作次数来实现这一目标。求出使每个简单环都变好所需的最小操作次数,并输出具体的操作方案。可以证明,总能通过某种操作序列满足 Ivan 的要求。

输入格式

第一行包含两个正整数 $N$ 和 $M$($1 \le N, M \le 100\,000$),分别表示节点数和边数。

接下来的 $M$ 行中,第 $i$ 行描述第 $i$ 条边:包含三个整数 $a_i, b_i, p_i$($1 \le a_i, b_i \le N, a_i \neq b_i, 0 \le p_i \le 10^9$),表示第 $i$ 条边连接的两个节点以及该边的权值。

图是连通的,且没有重边。

输出格式

第一行输出一个整数 $K$,表示最少的操作次数。

在接下来的 $K$ 行中,每行输出一组由空格隔开的数,格式如下:

  • 行中的第一个数是该次操作中选择的整数 $x$;
  • 第二个数是 $B$,表示该次操作中选择的边数;
  • 接下来是 $B$ 个整数 $E_i$($1 \le E_i \le M$),表示被选中边的编号(按输入顺序从 $1$ 到 $M$ 编号),这些编号必须按升序排列。

输出中的所有数字都应小于或等于 $2 \cdot 10^9$。

数据范围

  • 在占总分 20% 的测试样例中,最少所需的操作次数等于 1。
  • 在另外占总分 40% 的测试样例中,输入中的所有数字都小于或等于 $10^6$。

样例

输入 1

4 4
1 2 10
2 3 9
3 4 8
4 1 7

输出 1

1
12 3 1 2 3

输入 2

2 1
1 2 3

输出 2

0

输入 3

6 8
1 2 6
2 3 1
3 5 6
3 1 5
4 5 0
3 6 0
4 2 8
4 1 1

输出 3

2
2 2 4 6
15 1 7

说明

在第一个测试样例中,初始的图如左下方图像所示,最终的图(对前三条边与 12 进行异或操作后)如右下方图像所示。图中唯一的环是好的,因为其所有边的异或和为 0。

在第二个测试样例中,图中没有环,因此“每个简单环都是好的”这一条件平凡地满足。这就是为什么所需的操作次数为 0 的原因。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.