TopCoder SRM 701 FibonacciStringSum

Posted grice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TopCoder SRM 701 FibonacciStringSum相关的知识,希望对你有一定的参考价值。

题意

定义"Fibonacci string"为没有连续1的01串。现在,给出a,b,定义一个"Fibonacci string"的权值为(y^bx^a),其中(x)(0)的个数,(y)(1)的个数。
要求对所有长度为n的"Fibonacci string"的权值求和,对(10^9+7)取模。
(n≤10^9, a,b≤25)

做法

显然(Ans=sum_{k=0}^n {n-k+1 choose k} k^b (n-k)^a)
考虑矩阵快速幂,矩阵内要存(n-1,n-2)(i,j(ile b,jle a)),边长(O(ab))的,显然过不去

(egin{aligned} &sum_{k=0}^n {n-k+1 choose k} k^b (n-k)^a &= sum_{j=0}^a {a choose j} (-1)^jk^j sum_{k=0}^n {n-k+1 choose k}k^{b} end{aligned})

这样边长就是(O(b))的了




以上是关于TopCoder SRM 701 FibonacciStringSum的主要内容,如果未能解决你的问题,请参考以下文章

topcoder srm 701 div1 -3

topcoder-srm701-div2-900 博弈计算二进制位1的个数dp状态压缩

TOPCODER SRM 686 div2 1000

Topcoder SRM 刷题企划

Topcoder SRM 145

topcoder srm list