CF717A Festival Organization

Posted gzezFISHER

tags:

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

更好的阅读体验

题意

一个合法的串定义为:长度在 \\([l, r]\\) 之间,且只含 \\(0,1\\),并且不存在连续 \\(2\\) 个或更多的 \\(0\\).
现在要选出 \\(k\\) 个长度相同的不同的合法的串,问有几种选法,答案模 \\(10^9+7\\).

\\(1\\le l\\le r\\le10^18, 1\\le k\\le200\\).

题解

\\(F_i,j\\) 表示长度为 \\(i\\), 以 \\(j\\) 结尾的合法串个数.
有 $$\\left
\\beginarraylr
F_i,0=F_i-1,1 & \\
F_i,1=F_i-1,0+F_i-1,1 &
\\endarray
\\right.$$
即 $$\\left
\\beginarraylr
F_i,0=\\textFibi & \\
F
i,1=\\textFibi+1 &
\\endarray
\\right.$$
所以答案 $$\\textAns=\\sum\\limits
l+2\\le i\\le r+2\\beginpmatrix\\textFib_i\\k\\endpmatrix$$

\\[\\beginalign* \\textAns =&\\sum_l+2\\leq i\\leq r+2 \\beginpmatrix\\textFib_i\\\\k\\endpmatrix\\\\ =&\\frac1k!\\sum_l+2\\le i\\le r+2 \\textFib_i^\\underlinek\\\\ =&\\frac1k!\\sum_l+2\\le i\\le r+2\\sum_1\\le j\\le k(-1)^k-j\\beginbmatrixk\\\\ j \\endbmatrix\\textFib_i^j\\\\ =&\\frac1k!\\sum_1\\le i\\le k(-1)^k-i\\beginbmatrixk\\\\ i \\endbmatrix\\sum_l+2\\le j\\le r+2\\textFib_j^i \\endalign* \\]

考虑带入斐波那契数的通项,令 \\(A=\\frac1+\\sqrt52, B=\\frac1-\\sqrt52\\)

\\[\\beginalign* \\textAns =&\\frac1k!\\sum_1\\le i\\le k(-1)^k-i\\beginbmatrixk\\\\ i \\endbmatrix\\sum_l+2\\le j\\le r+2[\\frac1\\sqrt5(A^j-B^j)]^i\\\\ =&\\frac1k!\\sum_1\\le i\\le k(-1)^k-i\\beginbmatrixk\\\\ i \\endbmatrix(\\frac1\\sqrt5)^i\\sum_l+2\\le j\\le r+2\\sum_0\\le p\\le i\\beginpmatrixi\\\\p\\endpmatrix(-1)^p(A^i-pB^p)^j\\\\ =&\\frac1k!\\sum_1\\le i\\le k(-1)^k-i\\beginbmatrixk\\\\ i \\endbmatrix(\\frac1\\sqrt5)^i\\sum_0\\le j\\le i\\beginpmatrixi\\\\j\\endpmatrix(-1)^j\\sum_l+2\\le p\\le r+2(A^i-jB^j)^p \\endalign* \\]

等比数列求和快速计算式子后面部分
\\(\\Theta(k^2\\times(\\log l+\\log r))\\)

细节

本题涉及对 \\(\\sqrt5\\) 的计算,然而在模 \\(10^9+7\\) 意义下 \\(5\\) 没有二次剩余,扩域维护即可

代码 codeforces submission 137205589

不忘初心 砥砺前行

以上是关于CF717A Festival Organization的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces 717A Festival Organization(组合数学:斯特林数+Fibonacci数列+推公式)

cf1509 C. The Sports Festival(区间DP)

CODE FESTIVAL 2017 Final J - Tree MST

Festival | Spring Festival

编译 Festival/Edinburgh Speech 工具 Visual Studio 2013

在独立的C ++程序中编译用C ++编写的Festival代码部分