码蹄集 - MT3182 - 填矩阵
@TOC
填矩阵
时间限制:1秒
空间限制:128M
题目描述
有一个$1\times n$的矩阵,现在往里面填方块,一共有三种方块:$1\times 1$的白块,$1\times 1$的黑块,$1\times k$的黑块,方块放置时,必须是黑白交替的,矩阵不用填满,但要求最下面的块和最上面的块必须是黑色的,问有多少种放置方法。
输入描述
输入两个整数$n,k$代表矩阵的高度和黑块的高度
数据范围
$2≤k≤10,1≤n≤100$
输出描述
输出一个整数代表放置方法
样例一
输入
1 |
|
输出
1 |
|
题目大意
为了便于理解题意,我画了一张图来解释:
题目分析
用两个数组:
1 |
|
初始值:
1 |
|
之后,从第二块儿开始模拟:
- 如果第$i$块是1x1的白块,那么下面一块必定是黑块。
1
Bai[i] = Hei[i - 1];
- 如果第$i$块是1x1的黑块,那么下面一块必定是白块。
1
Hei[i] = Bai[i - 1];
- 如果第$i$块是1xk的黑块(前提是i≥k),那么下面一块(i - k)必定是白块
1
2
3if (i - k >= 0) {
Hei[i] += Bai[i - k];
}
最后再把所有的最上面是黑块的情况累加起来即可。
1 |
|
AC代码
1 |
|
虽然代码可以复制,但最好还是自己理解后再敲哦
原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/125918304
码蹄集 - MT3182 - 填矩阵
https://blog.letmefly.xyz/2022/07/21/MaTiJi - MT3182 - 填矩阵/