#ABC328F. 好集合查询

好集合查询

好集合查询

题目描述

给定 QQ 个整数三元组 $(a_1, b_1, d_1), (a_2, b_2, d_2), \ldots, (a_Q, b_Q, d_Q)$。

集合 {1,2,,Q}\{1, 2, \ldots, Q\} 的子集 SS 被称为「好集合」,当存在一个长度为 NN 的整数序列 (X1,X2,,XN)(X_1, X_2, \ldots, X_N) 满足:

对所有的 iSi \in S,有 XaiXbi=diX_{a_i} - X_{b_i} = d_i

初始时 SS 为空集,按 i=1,2,,Qi = 1, 2, \ldots, Q 的顺序执行以下操作:

如果 S{i}S \cup \{i\} 是好集合,则将 SS 替换为 S{i}S \cup \{i\}

按升序输出最终集合 SS 的所有元素。

输入格式

输入按以下格式从标准输入给出:

NN QQ
a1a_1 b1b_1 d1d_1
a2a_2 b2b_2 d2d_2
\vdots
aQa_Q bQb_Q dQd_Q

输出格式

按以下格式输出最终集合 SS 的所有元素组成的序列 (s1,s2,,sk)(s_1, s_2, \ldots, s_k),各元素用空格隔开:

s1s_1 s2s_2 \ldots sks_k

样例

3 5
1 2 2
3 2 -3
2 1 -1
3 3 0
1 3 5
1 2 4 5

初始时 SS 为空集,按 i=1,2,3,4,5i = 1, 2, 3, 4, 5 的顺序执行题目中描述的操作,过程如下。

对于 i=1i = 1,集合 S{i}={1}S \cup \{i\} = \{1\} 是好集合,因为例如 (X1,X2,X3)=(3,1,4)(X_1, X_2, X_3) = (3, 1, 4) 满足题目条件,所以将 SS 替换为 {1}\{1\}

对于 i=2i = 2,集合 S{i}={1,2}S \cup \{i\} = \{1, 2\} 是好集合,因为例如 (X1,X2,X3)=(3,1,2)(X_1, X_2, X_3) = (3, 1, -2) 满足题目条件,所以将 SS 替换为 {1,2}\{1, 2\}

对于 i=3i = 3,集合 S{i}={1,2,3}S \cup \{i\} = \{1, 2, 3\} 不是好集合。

对于 i=4i = 4,集合 S{i}={1,2,4}S \cup \{i\} = \{1, 2, 4\} 是好集合,因为例如 (X1,X2,X3)=(3,1,2)(X_1, X_2, X_3) = (3, 1, -2) 满足题目条件,所以将 SS 替换为 {1,2,4}\{1, 2, 4\}

对于 i=5i = 5,集合 S{i}={1,2,4,5}S \cup \{i\} = \{1, 2, 4, 5\} 是好集合,因为例如 (X1,X2,X3)=(3,1,2)(X_1, X_2, X_3) = (3, 1, -2) 满足题目条件,所以将 SS 替换为 {1,2,4,5}\{1, 2, 4, 5\}

因此,最终的集合 SS{1,2,4,5}\{1, 2, 4, 5\}

200000 1
1 1 1

最终集合 SS 为空集。

5 20
4 2 125421359
2 5 -191096267
3 4 -42422908
3 5 -180492387
3 3 174861038
2 3 -82998451
3 4 -134761089
3 1 -57159320
5 2 191096267
2 4 -120557647
4 2 125421359
2 3 142216401
4 5 -96172984
3 5 -108097816
1 5 -50938496
1 2 140157771
5 4 65674908
4 3 35196193
4 4 0
3 4 188711840
1 2 3 6 8 9 11 14 15 16 17 19

数据范围

  • 输入均为整数。
  • 1N,Q2×1051 \le N, Q \le 2 \times 10^5
  • 1ai,biN1 \le a_i, b_i \le N
  • 109di109-10^9 \le d_i \le 10^9
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
3121
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签