#SLT08B. 2026年S组模拟赛10连测第8场-T2 程老师的混色方案
2026年S组模拟赛10连测第8场-T2 程老师的混色方案
| 项目 | 内容 |
|---|---|
| 输入文件名 | mixcolor.in |
| 输出文件名 | mixcolor.out |
| 可执行文件名 | mixcolor |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
程老师接了一批横幅订单。每条横幅都是一条细长的布,从左到右分成 个格子;一个格子只染一种颜色,每个格子都必须染上颜色,不留空白。店里常备的颜料有三种:红色、黄色、蓝色。订单上写着这条横幅要恰好用掉红颜料涂满 个格子、黄颜料涂满 个格子、蓝颜料涂满 个格子,其中 ;三种颜料的用量都要不多不少地正好用完,多余的格子没有别的颜色可以补。
横幅交付前还要过一道规矩,这条规矩印在订单背面:横幅上不允许出现红格与黄格相邻。这里的"相邻"指两个格子在横幅上左右紧挨着,与两者的先后次序无关。红格与蓝格相邻、黄格与蓝格相邻、两个同色格相邻,都不违反这条规矩。
程老师是一条一条地染的。动手之前他先在纸上把这条横幅的样式定下来:纸上从左到右写下 个记号,第 个记号写这一条横幅第 个格子染什么颜色;写完之后照着纸上的记号下笔,记号写的是什么颜色,格子上就是什么颜色。同一份订单上纸可以换着写很多遍,每一份写满 个记号的纸对应一种染法。
同一份订单往往有很多种染法。两份纸只要在某个位置上写的颜色不同,就当作两种不同的染法;格子从左到右的位置是有分别的。程老师手上还有 份订单,每份订单给出的三种颜料用量都不一样,他需要分别算出每份订单各有多少种染法。单份订单的染法数可能相当大,你只需要给出它对 取模后的结果。
输入格式
从文件 mixcolor.in 中读入数据。
- 第一行一个整数 ,表示订单份数;
- 接下来 行,每行三个整数 ,依次表示一份订单上红、黄、蓝三种颜料的用量。
输出格式
输出到文件 mixcolor.out 中。
输出 行,第 行一个整数,表示第 份订单的染法数对 取模后的结果。
样例
2
1 1 1
2 1 0
2
0
样例 1 解释
第一份订单要用掉 格红、 格黄、 格蓝,一共 个格子。红格与黄格只要紧挨着就不行,而这条横幅只有一个蓝格,它必须落在红格与黄格之间把两者隔开,于是蓝格只能占中间那一格,红格与黄格分别落在左右两端:红蓝黄、黄蓝红,共 种。第二份订单里没有蓝格, 个格子无论怎么排都找不到东西把红格与黄格隔开,红格与黄格总会紧挨着,一种染法都不成立。
3
0 2 1
2 0 3
1 1 2
3
10
6
样例 2 解释
第三条订单只有 个格子: 格红、 格黄、 格蓝。 个格子上放下这些颜料,一共只有 种排法。逐项排除:把红格与黄格看成固定在一起的一整块,这一块有两种朝向(红黄在前或黄红在前);这一块与两个蓝格一起摆放, 个物件里两个蓝格完全相同,有 种摆法,于是红格与黄格紧挨着的排法共 种,这些都不成立。剩下的 种都满足规矩。核对一遍:用 R、Y、B 分别代表红格、黄格、蓝格,这 种依次是 RBYB、RBBY、YBRB、YBBR、BRBY、BYBR。
数据范围
对于所有测试数据,保证:
- ;
- ,且 。
各测试点的约束如下:
| 测试点 | 各参数上界 | 特殊性质 |
|---|---|---|
| , | 无 | |
| , | ||
| , | ||
| , | ||
| , | ||
| A | ||
| B |
- 特殊性质 A:每组询问里蓝色一格都不用。
- 特殊性质 B:每组询问里红色一格都不用。
- ID
- 3798
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者