#4425. 解密游戏

解密游戏

题目描述

在一堂趣味盎然的数学课上,老师设计了一个名为“解密纸条”的游戏。班上有 NN 个同学,每位同学在一张纸条上秘密写下一个数字,要么是 11,要么是 22

设第 ii 位同学纸条上写的数字为 PiP_iPiP_i 的值为 1122)。你的任务是破解所有同学的纸条内容,即确定 P1,P2,,PNP_1, P_2, \dots, P_N 的值。

老师提供了 MM 条解密线索,每条线索描述为:第 XiX_i 位同学和第 YiY_i 位同学纸条上的数字之和加上一个值 ZiZ_i 总和为偶数(即 PXi+PYi+ZiP_{X_i} + P_{Y_i} + Z_i 是偶数)。

作为游戏的破解者,你可以执行以下操作任意次:选择一位同学,查看他/她纸条上的数字,每次查看需要消耗 11 个单位的时间。

请计算确定所有 P1,P2,,PNP_1, P_2, \dots, P_N 的最少时间。

输入格式

第一行包含两个整数 NNMM,分别表示同学人数和线索数量。

接下来 MM 行,每行包含三个整数 Xi,Yi,ZiX_i, Y_i, Z_i,表示一条线索。

输出格式

输出一个整数,表示确定所有同学纸条内容的最少总时间。

样例

2 1
1 2 1
1
6 3
1 2 1
2 3 2
4 5 4
3
8 6
1 2 3
2 3 5
2 4 6
5 7 8
6 8 2
5 8 3
2

样例解释

  • 样例 1:有 22 个人,11 条线索。查看其中一人的数字后,可根据线索推得另一人的数字,最少需要 11 次查看。
  • 样例 2:有 66 个人,33 条线索,线索将同学划分为三组:{1,2,3}\{1,2,3\}{4,5}\{4,5\}{6}\{6\}。每组中只要查看一人的数字,全组即可确定。最少需要 33 次查看。
  • 样例 3:有 88 个人,66 条线索,形成两个连通组:{1,2,3,4}\{1,2,3,4\}{5,6,7,8}\{5,6,7,8\}。每组查看一人,最少需要 22 次查看。

数据范围

  • 2N1052 \leq N \leq 10^5
  • 1M1051 \leq M \leq 10^5
  • 1Xi<YiN1 \leq X_i < Y_i \leq N
  • 1Zi1001 \leq Z_i \leq 100
  • 所有 (Xi,Yi)(X_i, Y_i) 互不相同
  • 输入线索无矛盾,即一定可以解密出一组符合所有线索条件的 P1,P2,,PNP_1, P_2, \dots, P_N