#CF2020D. 连通点集

    ID: 6336 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 2 上传者: 标签>贪心其他数学数论树结构动态规划图结构*1800

连通点集

D. 连通点集

时间限制:每个测试用例 2 秒 内存限制:512 兆字节

在一个晴朗的夜晚,爱丽丝准备玩一款改版的经典游戏——“连通点集”。

游戏规则如下: 爱丽丝画一条直线,并在上面标记出 nn 个点,点的编号为 11nn。初始时,点与点之间没有任何连线,所有点都是相互独立的。 之后,爱丽丝会进行 mm 次操作,每次操作的格式为: 选取三个整数 aia_idid_i1di101 \le d_i \le 10)和 kik_i。 选中点 $a_i,\ a_i+d_i,\ a_i+2d_i,\ a_i+3d_i,\ \dots,\ a_i + k_i \cdot d_i$,并将这些点中的每一对点都用弧连接起来。

在完成所有 mm 次操作后,请求出这些点形成的连通分量的数量。

† 连通分量定义:如果两个点之间可以通过若干条弧和其他点形成路径,则这两个点属于同一个连通分量。


输入格式

每个测试文件包含多组测试用例。 第一行输入测试用例数量 tt1t1051 \le t \le 10^5)。

每组测试用例: 第一行包含两个整数 nnmm1n21051 \le n \le 2 \cdot 10^51m21051 \le m \le 2 \cdot 10^5)。 接下来 mm 行,每行包含三个整数 ai, di, kia_i,\ d_i,\ k_i。 保证满足 1aiai+kidin1 \le a_i \le a_i + k_i \cdot d_i \le n1di101 \le d_i \le 100kin0 \le k_i \le n

数据保证:所有测试用例的 nn 之和与 mm 之和均不超过 21052 \cdot 10^5


输出格式

对于每组测试用例,输出最终的连通分量数量。


样例输入

3
10 2
1 2 4
2 2 4
100 1
19 2 4
100 3
1 2 5
7 2 6
17 2 31

样例输出

2
96
61

样例解释

  • 第一个测试用例:n=10n=10 个点。 第一次操作连接点 {1,3,5,7,9}\{1,3,5,7,9\}; 第二次操作连接点 {2,4,6,8,10}\{2,4,6,8,10\}。 最终共有 22 个连通分量。

  • 第二个测试用例:n=100n=100 个点。 唯一操作连接点 {19,21,23,25,27}\{19,21,23,25,27\},形成 11 个连通分量; 剩余 9595 个点各自独立。 答案:1+95=961+95=96

  • 第三个测试用例:n=100n=100 个点。 所有 117979 的奇数点合并为 11 个连通分量(共 4040 个点); 剩余 6060 个点各自独立。 答案:1+60=611+60=61