AT_ndpc2026_r 3 つ組
题目描述
对于非负整数 $u, v$,我们记 $u \subseteq v$ 表示 $u\ \mathrm{OR}\ v = v$。其中,$\mathrm{OR}$ 表示按位或操作。
一个由非负整数三元组构成的序列 $((u_1,v_1,w_1),(u_2,v_2,w_2),\dots,(u_k,v_k,w_k))$ 被称为一个**好序列**,当且仅当它满足以下所有条件:
- $k \geq 2$。
- 对于所有满足 $1 \leq i \leq k-1$ 的整数 $i$,都有 $u_i \subseteq w_{i+1} \subseteq v_i$。
给定一个三元组序列 $A = ((x_1,y_1,z_1), (x_2,y_2,z_2), \dots, (x_N,y_N,z_N))$。
对于所有 $1 \leq i \leq N$,都有 $x_i \subseteq y_i$。
$A$ 长度至少为 $2$ 的子序列总共有 $2^N - N - 1$ 个(不同下标的选择分别计数)。
在这些子序列中,满足条件的“好序列”有多少个?请对 $998244353$ 取模输出。
输入格式
从标准输入读入,格式如下:
> $N\ x_1\ y_1\ z_1\ x_2\ y_2\ z_2\ \dots\ x_N\ y_N\ z_N$
输出格式
输出 $A$ 的所有长至少为 $2$ 的子序列中“好序列”的数目,结果对 $998244353$ 取模。
说明/提示
### 部分分数
本题包含部分分数。
- 若你能解决所有 $1 \leq i \leq N$ 满足 $\max(x_i, y_i, z_i) < 2^{18}$ 的数据,可以得到 $4$ 分。
### 样例解释 1
共有 $2$ 个序列满足条件:
- $((2,6,3),(1,5,2))$
- $((0,7,4),(1,5,2))$
# 约束条件
- $2 \leq N \leq 3 \times 10^5$
- $0 \leq x_i < 2^{24}$
- $0 \leq y_i < 2^{24}$
- $0 \leq z_i < 2^{24}$
- $x_i\ \mathrm{OR}\ y_i = y_i$
- 所有输入值均为整数。
由 ChatGPT 5 翻译