机房排列Vol.2 题解

1 题意

洛谷U55295
有两问,第一问就是有一个 2 × N 2\times N 2×N的长方形,我们要在里面放上 1 × 2 1\times 2 1×2的纸片来将它填满,问有多少种不同的方法。第二问还是有 2 × N 2\times N 2×N的一个长方形,我们要用 1 × K ( K ∈ N + ) 1\times K (K\in N_+) 1×K(KN+)的纸片来将它填满,问有多少种不同的方法。

2 解法

2-1 第一问

对于第一问,我们考虑铺满 2 × N 2\times N 2×N的长方形之前,时只有两种情况的。
我们注意到:
如果前面 N − 1 N-1 N1列都已经铺满了,那么我们只用竖着填满就好了,如果是前面 N − 2 N-2 N2列铺满了,我们就横着铺两个纸片就能填满。

f n f_n fn表示填满填满 n n n列的答案。
则有:
f n = f n − 1 + f n − 2 f_n=f_{n-1}+f_{n-2} fn=fn1+fn2

2-2 第二问

2-2-1 一个引理

我们首先考虑 1 × N 1\times N 1×N的长方形,我们要将它用 1 × K 1\times K 1×K的纸片来填满的方案数。
g n g_n gn表示填满 1 × N 1\times N 1×N的长方形的方案数。
注意到,对于格子,我们有两种决策方案:
1.放在前一个长条之中
2.新建一个长条,放在它里面
特别地,对于第一个格子,我们只有一种方案就是新建一个长条。
则有:
g n = 2 n − 1 g_n=2^{n-1} gn=2n1
特别地,我们定义 g 0 = 1 g_0=1 g0=1

2-2-2 具体推导

令有 n n n列的方案数为 t n t_n tn
注意到,对于 2 × N 2\times N 2×N的长方形,我们用的纸条都是 1 × K 1\times K 1×K的,那么,我们将纸条竖着放的时候,它只可能是 1 × 2 1\times 2 1×2的,我们称这样的竖纸条为 S S S
对于一个填满了纸条的方案来说,我们设从左开始,第一次出现 S S S的列数为 p p p,那么,在 1 1 1 p − 1 p-1 p1这些列中,都没有 S S S。对于 S S S之前的,由引理1可知,方案数为 g p − 1 × g p − 1 g_{p-1}\times g_{p-1} gp1×gp1。对于 S S S之后的,方案数就是 t n − p t_{n-p} tnp
可知:
t n = ∑ p = 1 n ( g p − 1 2 + t n − p ) + g n 2 t_n=\sum_{p=1}^n(g^2_{p-1}+t_{n-p})+g^2_{n} tn=p=1n(gp12+tnp)+gn2
即:
t n = g 0 2 ⋅ t n − 1 + g 1 2 ⋅ t n − 2 + ⋯ + g n − 2 2 ⋅ t 1 + g n − 1 2 ⋅ t 0 + g n 2 t_n=g^2_0\cdot t_{n-1}+g^2_1\cdot t_{n-2}+\cdots+g^2_{n-2}\cdot t_1+g^2_{n-1}\cdot t_0+g^2_{n} tn=g02tn1+g12tn2++gn22t1+gn12t0+gn2
g n g_n gn代入:
t n = 4 0 ⋅ t n − 1 + 4 0 ⋅ t n − 2 + ⋯ + 4 n − 3 ⋅ t 1 + 4 n − 2 ⋅ t 0 + 4 n − 1 t_n=4^0\cdot t_{n-1}+4^0\cdot t_{n-2}+\cdots+4^{n-3}\cdot t_1+4^{n-2}\cdot t_0+4^{n-1} tn=40tn1+40tn2++4n3t1+4n2t0+4n1
原式 × 4 \times 4 ×4得:
4 t n = 4 1 ⋅ t n − 1 + 4 2 ⋅ t n − 2 + ⋯ + 4 n − 2 ⋅ t 1 + 4 n − 1 ⋅ t 0 + 4 n ① 4t_n=4^1\cdot t_{n-1}+4^2\cdot t_{n-2}+\cdots+4^{n-2}\cdot t_1+4^{n-1}\cdot t_0+4^{n} \qquad ① 4tn=41tn1+42tn2++4n2t1+4n1t0+4n
又推得:
t n + 1 = ∑ p = 1 n + 1 ( g p − 1 2 + t n − p ) + g n + 1 2 t_{n+1}=\sum_{p=1}^{n+1}(g^2_{p-1}+t_{n-p})+g^2_{n+1} tn+1=p=1n+1(gp12+tnp)+gn+12
即:
t n + 1 = 4 0 ⋅ t n + 4 0 ⋅ t n − 1 + ⋯ + 4 n − 2 ⋅ t 1 + 4 n − 1 ⋅ t 0 + 4 n ② t_{n+1}=4^0\cdot t_{n}+4^0\cdot t_{n-1}+\cdots+4^{n-2}\cdot t_1+4^{n-1}\cdot t_0+4^{n}\qquad ② tn+1=40tn+40tn1++4n2t1+4n1t0+4n
②-①得:
t n + 1 − 4 t n = 4 0 ⋅ t n + 4 0 ⋅ t n − 1 − 4 1 ⋅ t n − 1 t_{n+1}-4t_n=4^0\cdot t_n+4^0\cdot t_{n-1}-4^1\cdot t_{n-1} tn+14tn=40tn+40tn141tn1
整理,得:
t n + 1 = 5 t n − 3 t n − 1 t_{n+1}=5t_n-3t_{n-1} tn+1=5tn3tn1
变形,得:
t n = 5 t n − 1 − 3 t n − 2 t_{n}=5t_{n-1}-3t_{n-2} tn=5tn13tn2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值