Comet OJ - Contest #13「火鼠的皮衣 -不焦躁的内心-」

在这里插入图片描述
好题。

呜呜呜。

解法一:

建立一个实际的模型。
我们考虑从 n n n个位置挑 2 i 2i 2i个位置组成 i i i个位置对,成对可以涂成 a a a种颜色,否则 b b b种。

那么我们利用 d p dp dp方程求解, d p [ i ] [ 0 / 1 ] dp[i][0/1] dp[i][0/1]表示前 i i i个位置里有没有需要配对但还没配对的,根据我们转换的模型,我们对于每个位置对,只在后面一次涂色。

那么 d p [ i ] [ 0 ] = d p [ i − 1 ] [ 1 ] ∗ a + d p [ i − 1 ] [ 0 ] ∗ b dp[i][0]=dp[i-1][1]*a+dp[i-1][0]*b dp[i][0]=dp[i1][1]a+dp[i1][0]b
这个很容易懂,如果没有配对完成的配对完成了,说明这个形成了位置对,并且是后面一次,所以要涂色。
d p [ i ] [ 1 ] = d p [ i − 1 ] [ 0 ] ∗ 1 + d p [ i − 1 ] [ 1 ] ∗ b dp[i][1]=dp[i-1][0]*1+dp[i-1][1]*b dp[i][1]=dp[i1][0]1+dp[i1][1]b
这个也是很易懂,配对完成的变成没完成的,一定是前面一次,所以不计数,不影响的情况都是 b b b.
显然矩阵递推结束。

解法二:

数学之伟大。
a n s = ∑ i = 0 ⌊ x 2 ⌋ ( n 2 i ) ( a ) 2 i b n − 2 i ans=\sum_{i=0}^{\lfloor \frac{x}{2} \rfloor}\binom{n}{2i}(\sqrt{a})^{2i}b^{n-2i} ans=i=02x(2in)(a )2ibn2i
\qquad = ∑ i = 0 n ( n i ) ( a ) i b n − i =\sum_{i=0}^{n}\binom{n}{i}(\sqrt{a})^{i}b^{n-i} =i=0n(in)(a )ibni [ i % 2 = = 0 ] [i\%2==0] [i%2==0]
[ i % 2 = = 0 ] [i\%2==0] [i%2==0]是可以写成 ( − 1 ) i + 1 i 2 \frac{(-1)^i+1^i}{2} 2(1)i+1i
a n s = ∑ i = 0 n ( n i ) ( a ) i b n − i ∗ ( ( − 1 ) i + 1 i 2 ) ans=\sum_{i=0}^{n}\binom{n}{i}(\sqrt{a})^{i}b^{n-i}*(\frac{(-1)^i+1^i}{2}) ans=i=0n(in)(a )ibni(2(1)i+1i)
= 1 2 ( ∑ i = 0 n ( a ) i b n − i ( n i ) + ∑ i = 0 n ( − a ) i b n − i ) ( n i ) \qquad=\frac{1}{2}(\sum_{i=0}^{n}(\sqrt{a})^ib^{n-i}\binom{n}{i}+\sum_{i=0}^{n}(-\sqrt{a})^ib^{n-i})\binom{n}{i} =21(i=0n(a )ibni(in)+i=0n(a )ibni)(in)

显然可以利用二项式定理继续化简。
a n s = 1 2 ∑ i = 0 n ( a + b ) n + ( − a + b ) n ans=\frac{1}{2}\sum_{i=0}^{n}(\sqrt{a}+b)^n+(-\sqrt{a}+b)^n ans=21i=0n(a +b)n+(a +b)n

我们可以发现这很符合特征方程二次递推式里的通项。
a n = A p 1 n + B p 2 n a_n=Ap_1^n+Bp_2^n an=Ap1n+Bp2n
所以 p 1 p_1 p1 p 2 p_2 p2是特征方程的两个解,而这两个解我们是已知的。
特征方程为 x 2 = A x + B x^2=Ax+B x2=Ax+B
从而有 x 2 − A x − B = 0 x^2-Ax-B=0 x2AxB=0
利用韦达定理求的, p 1 p 2 = − B p_1p_2=-B p1p2=B p 1 + p 2 = A p_1+p_2=A p1+p2=A
a n + 2 = A a n + 1 + B a n a_{n+2}=Aa_{n+1}+Ba_n an+2=Aan+1+Ban
矩阵快速幂加速即可。

这是特征方程一个逆用,但是很常见。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值