#JLT08D. 2026年J组模拟赛10连测第8场-T4 程老师的彩带

2026年J组模拟赛10连测第8场-T4 程老师的彩带

项目 说明
目录 ribbon
可执行文件名 ribbon.cpp
输入文件 ribbon.in
输出文件 ribbon.out
每个测试点时限 1.0 秒
内存限制 512 MiB
测试点数目 20
测试点是否等分 是

题目描述

程老师带学生做手工,材料是一条 nn 个格子的彩带。每个格子都要染上颜色,可选的颜色有且只有三种,为了书写方便记作颜色 00、颜色 11、颜色 22;每个格子染且只染一种颜色。

染色有一条禁忌:颜色 00 与颜色 22 不能相邻。只要相邻的两个格子里,一个染的是 00、另一个染的是 22,不管 00 在前还是 22 在前,这样的染法都不允许。除这一条之外没有别的限制:相邻两格都染 00、都染 11、都染 22 都可以,00 与 11 相邻、11 与 22 相邻也都可以。

程老师还要数一数一条彩带上有多少同色处:如果第 ii 个格子和第 i+1i + 1 个格子染的颜色相同,那么位置 (i,i+1)(i, i+1) 就贡献一处同色;整条彩带上这样的位置有几对,就有几处同色。

程老师想知道,在所有不违反禁忌的染法中,恰好有 kk 处同色的染法共有多少种。两种染法只要有任意一个格子的颜色不同,就视为不同的染法。答案可能很大,只需要给出它对 998244353998244353 取模的结果。

输入格式

从文件 ribbon.in 中读入数据。

一行两个整数 n,kn, k。

输出格式

输出到文件 ribbon.out 中。

一行一个整数,表示满足条件的染法数对 998244353998244353 取模的结果。

数据范围

对于所有测试数据,保证:

  • 1≤n≤20001 \le n \le 2000;
  • 0≤k≤n−10 \le k \le n - 1。
测试点 n≤n \le 特殊性质
1~2 1010 无
3~6 1212
7~10 100100
11~14 500500
15~18 20002000
19 A
20 B

特殊性质 A:k=0k = 0。

特殊性质 B:k≤2k \le 2。

3 1
8
2 0
4

样例解释

样例 1:先不考虑禁忌,三个格子恰好有一处同色,同色的那一对只能出现在 (1,2)(1,2) 或 (2,3)(2,3) 这两个位置之一;这对格子的颜色有 33 种选法,剩下的第三个格子只要与这一对颜色不同就行,有 22 种选法,共 2×3×2=122 \times 3 \times 2 = 12 种。把这 1212 种逐个看过去,002、200、220、022 这四种在相邻位置上出现了 00 与 22,违反禁忌;其余 88 种都不违反,所以答案是 88。

样例 2:两个格子没有同色处,说明两格颜色必须不同。从三种颜色里取两种并分先后,得到 01、10、12、21、02、20 六种,其中 02 与 20 两格相邻处恰好是 00 与 22,违反禁忌,要排除。剩下 01、10、12、21 共 44 种。

难度 未评定
通过率 —
尝试 0
通过 0
ID
3760
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关