[硫化铂]叮叮车
Posted StaroForgin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[硫化铂]叮叮车相关的知识,希望对你有一定的参考价值。
叮叮车
题目概述
题解
首先,我们考虑最小的矩阵覆盖的方案数该怎么计算。
首先,覆盖一个大小为
n
n
n的阶梯矩形的最小数量肯定是
n
n
n。
因为不同的角肯定不可能出现在同一矩形内,至少需要
n
n
n个矩形,我们又很容易构造出一组只需要
n
n
n个的解,所以最小数量肯定为
n
n
n。
那我们又该怎么计数呢?
我们可以借助
d
p
dp
dp来统计,我们定义覆盖完前
i
i
i行,第
i
i
i行有
j
j
j个不同矩形的方案数为
d
p
i
,
j
dp_i,j
dpi,j。
我们如果已经覆盖好了前
n
−
1
n-1
n−1行,现在准备覆盖第
n
n
n行,那么我们转移的时候就要枚举那些矩形有哪些不能延伸到第
n
n
n行,这些就只能有第
n
n
n行新产生的矩形来覆盖。
因为第
n
n
n行只能新产生一个,所以去掉的矩形必然是第
n
n
n行的一个后缀,有转移方程式:
d
p
i
,
j
=
∑
k
=
j
−
1
i
−
1
d
p
i
−
1
,
k
dp_i,j=\\sum_k=j-1^i-1 dp_i-1,k
dpi,j=k=j−1∑i−1dpi−1,k尝试把第二维变成
i
−
j
i-j
i−j,那么有:
d
p
i
,
j
=
∑
k
=
0
min
(
i
−
1
,
j
)
d
p
i
−
1
,
k
dp_i,j=\\sum_k=0^\\min(i-1,j)dp_i-1,k
dpi,j=k=0∑min(i−1,j)dpi−1,k再把这放到网格图上,不就是往后走不能降低,这不是卡塔兰数吗?可以发现,
d
p
i
,
j
=
(
i
+
j
−
1
j
)
−
(
i
+
j
−
1
j
−
1
)
f
(
n
)
=
∑
i
=
0
n
−
1
d
p
i
,
j
=
∑
i
=
0
n
−
1
(
(
n
+
i
−
1
i
)
−
(
n
+
i
−
1
i
−
1
)
)
=
∑
i
=
0
n
−
1
(
n
−
1
+
i
n
−
1
)
−
∑
i
=
0
n
−
2
(
n
+
i
n
)
=
(
2
n
−
1
n
−
1
)
−
(
2
n
−
1
n
−
2
)
=
2
n
−
1
(
2
n
−
1
n
−
2
)
=
2
(
2
n
−
1
)
!
(
n
−
1
)
!
(
n
+
1
)
!
=
(
2
n
)
!
(
n
!
)
2
(
n
+
1
)
dp_i,j=\\binomi+j-1j-\\binomi+j-1j-1\\\\ f(n)=\\sum_i=0^n-1dp_i,j=\\sum_i=0^n-1\\left(\\binomn+i-1i-\\binomn+i-1i-1\\right)\\\\ =\\sum_i=0^n-1\\binomn-1+in-1-\\sum_i=0^n-2\\binomn+in=\\binom2n-1n-1-\\binom2n-1n-2\\\\ =\\frac2n-1\\binom2n-1n-2=\\frac2(2n-1)!(n-1)!(n+1)!=\\frac(2n)!(n!)^2(n+1)
dpi,j=(ji+j−1)−(j−1i+j−1)f(n)=i=0∑n−1dpi,j=i=0∑n−1((in+i−1)−(i−1n+i−1))=i=0∑n−1(n−1n−1+i)−i=0∑n−2(nn+i)=(n−12n−1)−(n−22n−1)=n−12(n−22n−1)=(n−1)!(n+1)!2(2n−1)!=(n!)2(n+1)(2n)!
我们要求的是
max
i
=
l
r
v
p
[
(
i
+
1
)
f
(
i
)
]
\\max_i=l^rv_p[(i+1)f(i)]
maxi=lrvp[(i+1)f(i)],这恰好就乘上了一个
i
+
1
i+1
i+1呀。
那我们记我们
g
(
n
)
=
v
7
[
(
n
+
1
)
f
(
n
)
]
g(n)=v_7[(n+1)f(n)]
g(n)=v7[(n+1)f(n)],那么
g
(
n
)
=
v
7
[
(
2
n
)
!
(
n
!
)
2
]
g(n)=v_7[\\frac(2n)!(n!)^2]
g(n)=v7[(n!)2(2n)!]。
我们算的是里面
7
7
7的数量,显然可以枚举里面
7
7
7的倍数个数。
g
(
n
)
=
∑
i
=
1
∞
⌊
2
n
7
i
⌋
−
2
⌊
n
7
i
⌋
=
∑
i
=
1
∞
[
2
(
n
%
7
i
)
⩾
7
i
]
g(n)=\\sum_i=1^\\infty\\lfloor\\frac2n7^i\\rfloor-2\\lfloor\\fracn7^i\\rfloor=\\sum_i=1^\\infty[2(n\\%7^i)\\geqslant7^i]
g(n[硫化铂]传染