[硫化铂]叮叮车

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 n1行,现在准备覆盖第 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=j1i1dpi1,k尝试把第二维变成 i − j i-j ij,那么有:
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=0min(i1,j)dpi1,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+j1)(j1i+j1)f(n)=i=0n1dpi,j=i=0n1((in+i1)(i1n+i1))=i=0n1(n1n1+i)i=0n2(nn+i)=(n12n1)(n22n1)=n12(n22n1)=(n1)!(n+1)!2(2n1)!=(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[硫化铂]传染

[硫化铂]密码

[硫化铂]treecnt

[硫化铂]启程的日子

[硫化铂]卿且去

[硫化铂]好