AT_kupc2018_h カラフル数列
题目描述
托尔君是个非常喜欢数列的男孩。
在一次日常地欣赏数列时,他听到了电视里提到“多样性”这个词语。
受此启发,托尔君想为自己的数列增添多样性。因此,他决定创建一个由 $N$ 个整数组成的数列 $a_1, a_2, \ldots, a_N$,需要满足以下条件:
- 对于每个 $i$ ($1 \leq i \leq M$),子序列 $a_{l_i}, a_{l_i + 1}, \ldots, a_{r_i}$ 中至少要有一个数字与 $b_i$ 不同。
- 所有数列元素的值必须在 $1$ 和 $S$ 之间(包括 $1$ 和 $S$)。
托尔君对满足这些条件的数列数量产生了好奇,但发现自己无法手动计算出结果。
请帮助托尔君计算能够满足这些条件的数列的总数。由于结果可能十分巨大,请输出对 $10^9 + 7$ 取模后的答案。
输入格式
输入以如下格式给出:
> $N$ $M$ $S$ $l_1$ $r_1$ $b_1$ $l_2$ $r_2$ $b_2$ $\ldots$ $l_M$ $r_M$ $b_M$
输出格式
输出满足上述条件的数列的总数,并对 $10^9 + 7$ 取模。
## 数据范围
- 所有输入均为整数。
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq M \leq 2 \times 10^5$
- $1 \leq S \leq 10^5$
- $1 \leq l_i \leq r_i \leq N$
- $1 \leq b_i \leq S$
- 每个 $(l_i, r_i, b_i)$ 组合都是唯一的。
### 样例解释
需要满足的条件如下:
- 在 $a_1, a_2$ 中,至少有一个数字不是 $1$。
- 在 $a_2, a_3$ 中,至少有一个数字不是 $2$。
- 数列中的每个数字必须介于 $1$ 和 $2$ 之间。
可以满足这些条件的数列有:$(1, 2, 1)$, $(2, 1, 1)$, $(2, 1, 2)$, $(2, 2, 1)$,共计 $4$ 种。
**本翻译由 AI 自动生成**
说明/提示
### 制約
- 入力はすべて整数で与えられる。
- $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ M\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ S\ \leq\ 10^5 $
- $ 1\ \leq\ l_i\ \leq\ r_i\ \leq\ N $
- $ 1\ \leq\ b_i\ \leq\ S $
- $ (l_i,\ r_i,\ b_i) $ の組はすべて異なる。
### Sample Explanation 1
満たすべき条件は、以下の $ 3 $ つです。 - $ a_1 $, $ a_2 $ のうち少なくとも $ 1 $ つは $ 1 $ 以外の整数である。 - $ a_2 $, $ a_3 $ のうち少なくとも $ 1 $ つは $ 2 $ 以外の整数である。 - 数列の要素の値はすべて $ 1 $ 以上 $ 2 $ 以下である。 これを満たす数列は、$ (1,\ 2,\ 1) $, $ (2,\ 1,\ 1) $, $ (2,\ 1,\ 2) $, $ (2,\ 2,\ 1) $ の $ 4 $ つ存在します。