看之前建议重温数论数学:生成函数(一),因为今天的内容有一定前置知识
|----------------------------------------------------------------------------------------------------------------------|
前置知识
- 二元一次方程组求解(真的)
|----------------------------------------------------------------------------------------------------------------------|
我们在数论数学:生成函数(一)中探讨过的斐波那契数列,其实可以反建模发现其实第
n
n
n个斐波那契数,就是用
1
×
2
1\times 2
1×2的骨牌铺满
2
×
n
2\times n
2×n的矩阵的方法数(这个太简单了,感性理解 )
兰而,我们今天要讨论的,是用 1 × 2 1\times 2 1×2的骨牌铺满 3 × n 3\times n 3×n的矩阵的方法数。大概用了1飞秒时间,我们意识到用 1 × 2 1\times 2 1×2的骨牌铺满 3 × 奇 数 3\times 奇数 3×奇数的矩阵是impossible的,因为奇数个格子无法被面积为偶数的骨牌填满。
服从一贯的套路,我们将
U
n
U_n
Un记为是用
1
×
2
1\times 2
1×2的骨牌铺满
3
×
n
3\times n
3×n的矩阵的方法数,所以
U
奇
数
=
0
U_{奇数}=0
U奇数=0。但是,从当前的情况来看,求出
U
n
U_n
Un的递推式似乎有些困难,所以我们不妨再设一个
V
n
V_n
Vn表示用
1
×
2
1\times 2
1×2的骨牌铺满缺了一个角的
3
×
n
3\times n
3×n的矩阵的方法数,形如:
同样的,
V
偶
数
=
0
V_{偶数}=0
V偶数=0。那么接下来递推式就很好设计了,只要防止重复计算就好了
V
n
=
U
n
−
1
+
V
n
−
2
,
U
n
=
2
V
n
−
1
+
U
n
−
2
V_n=U_{n-1}+V_{n-2},U_n=2V_{n-1}+U_{n-2}
Vn=Un−1+Vn−2,Un=2Vn−1+Un−2
U
1
=
0
,
U
2
=
3
,
V
1
=
1
,
V
2
=
0
U_1=0,U_2=3,V_1=1,V_2=0
U1=0,U2=3,V1=1,V2=0然后设
U
n
U_n
Un的生成函数为
U
(
z
)
U(z)
U(z),设
V
n
V_n
Vn的生成函数为
V
(
z
)
V(z)
V(z),则:
U
(
z
)
=
2
z
×
V
(
z
)
+
z
2
×
U
(
z
)
+
1
U(z)=2z\times V(z)+z^2\times U(z)+1
U(z)=2z×V(z)+z2×U(z)+1
V
(
z
)
=
z
2
×
V
(
z
)
+
z
×
U
(
z
)
V(z)=z^2\times V(z)+z\times U(z)
V(z)=z2×V(z)+z×U(z)然后这就解二元一次方程组嘛。。。
U
(
z
)
=
1
−
z
2
1
−
4
z
2
+
z
4
;
V
(
z
)
=
z
1
−
4
z
2
+
z
4
U(z)=\frac{1-z^2}{1-4z^2+z^4};V(z)=\frac{z}{1-4z^2+z^4}
U(z)=1−4z2+z41−z2;V(z)=1−4z2+z4z然后按照数论数学:生成函数(一)的老规矩硬算(为所欲为)
U
2
n
=
(
2
+
3
)
n
3
−
3
+
(
2
−
3
)
n
3
+
3
U_{2n}=\frac{(2+\sqrt{3})^n}{3-\sqrt{3}}+\frac{(2-\sqrt{3})^n}{3+\sqrt{3}}
U2n=3−3(2+3)n+3+3(2−3)n 然后我们就可以做这道题了BJOI2019压轴题?