题解 填充棋盘

这篇博客讨论了一种填充n*m棋盘的方法,要求每个2*2的小棋盘中包含数字1到4。通过分析,得出基础版和plus版的解决方案,涉及矩阵的排列组合问题,并给出了计算不同填充方案数量的公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

题目描述

输入格式

输出格式

样例

分析

基础版

plus版

Code


题目描述

有一个n*m的棋盘,在棋盘的每一个小方格中填入 1,2,3,4 这 4 个数字中的一个。请求出一共有多少种不同的棋盘,满足棋盘中每一个 2*2 的小棋盘中都有 1,2,3,4 这 4 个数字。由于这个结果可能会很大,你只需输出对 1e9+7 取模后的值。

输入格式

两个整数 n,m,表示棋盘的大小。

输出格式

一个整数表示答案的个数对 1e9+7取模后的值。

样例

in :2 3

out :48

分析

基础版

容易发现棋盘中任一个2*1的矩形A与相邻的2*1矩形B之间存在限制关系

注:这里,固定A与B相邻边是共同的长或共同的宽

体现在A中格子上的数字,均不等于B中格子上的数字

如:若A:1 2,则B:3 4或B:4 3

初始时,一种可能情况的A,确定两种可能情况的B

共有12种可能情况的A,1 2,1 3,1 4,2 3,2 4,3 4,2 1,3 1,4 1,3 2,4 2,4 3

往后,B成为了A,下一个B出现,出现两种情况

上述的运算,会分别在长为n的边与长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值