CF2223F Zhily and Colorful Strings
题目描述
自从 Jily 的第一个生日开始,Zhily 每年都会送他一根彩色字符串作为礼物,而且每一年的礼物都与前面所有的礼物不同。今年,Jily 惊讶地发现他已经收到了所有可能的不同礼物!
我们称满足以下条件的彩色字符串为“合法”的:
1. 它由 $m$ 种字符类型组成,对于第 $i$ 种字符,恰好有 $n_i$ 个;
2. 第 $i$ 种字符的每个字符可以被涂成 $c_i$ 种颜色中的任意一种;
3. 可以通过多次删除 $d_i$ 个连续且颜色相同的第 $i$ 种字符,将该字符串化简为空字符串。
请你计算所有合法彩色字符串的数量,对 $998\,244\,353$ 取模。
如果两个彩色字符串中有至少一个位置字符类型或颜色不同,则认为这两个字符串是不同的。
输入格式
每组测试数据包含多组测试用例。第一行是整数 $t$($1 \le t \le 10^4$),表示测试用例数。
每个测试用例第一行包含一个整数 $m$($1 \le m \le 2\cdot 10^5$),表示字符类型数。
接下来的 $m$ 行,每行包括 $n_i, c_i, d_i$($1 \le c_i < 998\,244\,353, 1 \le n_i, d_i \le 10^8$),含义分别为第 $i$ 种字符的总数、该类型的颜色数和所需的归约长度。
保证所有测试用例中 $\sum \left\lceil \frac{n_i}{d_i} \right\rceil \le 2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数,表示合法彩色字符串的数量,对 $998\,244\,353$ 取模。
说明/提示
以编号 $1,2,\ldots, \sum_{j=1}^m c_j$ 表示所有颜色,其中编号 $1+\sum_{j=1}^{i-1} c_j$ 到 $\sum_{j=1}^i c_j$ 的颜色属于第 $i$ 种字符。下文中,颜色 $1,2,3$ 分别用红、蓝、绿表示。
对于第一个测试用例,合法字符串为:
1. $[{\color{red}1}, {\color{red}1}, {\color{blue}2}]$
2. $[{\color{red}1}, {\color{red}1}, {\color{green}3}]$
3. $[{\color{red}1}, {\color{blue}2}, {\color{red}1}]$
4. $[{\color{red}1}, {\color{green}3}, {\color{red}1}]$
5. $[{\color{blue}2}, {\color{red}1}, {\color{red}1}]$
6. $[{\color{green}3}, {\color{red}1}, {\color{red}1}]$
在这些字符串中,总可以先删除唯一的 $2$ 或 $3$,然后再删除 $2$ 个连续的 $1$。
对于第二个测试用例,合法字符串为:
1. $[{\color{red}1}, {\color{red}1}, {\color{green}3}, {\color{green}3}]$
2. $[{\color{red}1}, {\color{green}3}, {\color{green}3}, {\color{red}1}]$
3. $[{\color{blue}2}, {\color{blue}2}, {\color{green}3}, {\color{green}3}]$
4. $[{\color{blue}2}, {\color{green}3}, {\color{green}3}, {\color{blue}2}]$
5. $[{\color{green}3}, {\color{red}1}, {\color{red}1}, {\color{green}3}]$
6. $[{\color{green}3}, {\color{blue}2}, {\color{blue}2}, {\color{green}3}]$
7. $[{\color{green}3}, {\color{green}3}, {\color{red}1}, {\color{red}1}]$
8. $[{\color{green}3}, {\color{green}3}, {\color{blue}2}, {\color{blue}2}]$
对于第三个测试用例,可以很容易地发现没有合法字符串。
由 ChatGPT 5 翻译