ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

P4451 [国家集训队]整数的lqp拆分

2019-08-18 14:03:15  阅读:205  来源: 互联网

标签:infty P4451 frac sqrt2 sum lqp sqrt2x 国家集训队 式子


传送门

显然有 $dp$,设 $f_i$ 为 $i$ 的 $lqp$ 拆分的权值和,考虑枚举拆分的最后一个数,不妨设 $f_0=1$

那么有 $f_i=\sum_{j=1}^{i}f_{i-j}F_{j}$ ,$F_{i}$ 表示斐波那契数列的第 $i$ 项

变一下就是 $f_i=\sum_{j=0}^{i-1}f_{j}F_{i-j}$,这样是 $n^2$ 的

然后有 $3$ 种做法,先从最容易的讲起

$1.$ 直接打表....,发现 $f_i=2f_{i-1}+f_{i-2}$

$2.$ 稍微动点脑子,$f_{i+1}-f_{i}=\sum_{j=0}^{i}f_{j}F_{i+1-j}-\sum_{j=0}^{i-1}f_{j}F_{i-j}$

$=\sum_{j=0}^{i-1}f_{j}F_{i+1-j}+f_i-\sum_{j=0}^{i-1}f_{j}F_{i-j}$ 

$=\sum_{j=0}^{i-1}f_{j}(F_{i+1-j}-F_{i-j})+f_i$

$\sum_{j=0}^{i-1}f_{j}F_{i-1-j}+f_i$

发现当 $j=i-1$ 时和式为 $0$,所以 $=\sum_{j=0}^{i-2}f_{j}F_{i-1-j}+f_i$

因为 $f_{i-1}=\sum_{j=0}^{i-2}f_{j}F_{i-1-j}$,所以 $f_{i+1}-f_{i}=f_{i-1}+f_{i}$

即 $f_{i+1}=2f_{i}+f_{i-1}$

上面两种方法都可以比较正常地推出式子,然后也可以矩阵优化到 $ \log n$

$3.$ 考虑生成函数,设 $A(x)$ 为 $f$ 的生成函数,$G(x)$ 为 $F$ 的生成函数

那么有 $A(x)=\sum_{n=0}^{\infty }(f_n)x^n$,代入得到

$A(x)=\sum_{n=0}^{\infty}([n==0]+\sum_{i=0}^{n-1}f_iF_{n-i})x^n$,感觉这个 $[n==0]$ 很烦,提出来

$A(x)=1+\sum_{n=1}^{\infty}(\sum_{i=0}^{n-1}f_iF_{n-i})x^n$,发现 $n=0$ 时式子没贡献,$i=n$ 时式子也没贡献,所以

$A(x)=1+\sum_{n=0}^{\infty}(\sum_{i=0}^{n}f_iF_{n-i})x^n$,这样我们就把右边变成卷积形式了

$A(x)=1+A(x)G(x)$,所以 $A(x)=\frac{1}{1-G(x)}$,因为 $G(x)=\frac{x}{1-x-x^2}$,代入得到

$A(x)=\frac{1}{1-\frac{x}{1-x-x^2}}$

$A(x)=\frac{1-x-x^2}{1-2x-x^2}$

$A(x)=1+\frac{x}{1-2x-x^2}$,然后经过一些数学技巧,得到

$A(x)=1+\frac{x}{(1-(1+\sqrt2)x)(1-(1-\sqrt2)x)}$

设 $a=1-(1+\sqrt2)x,b=1-(1-\sqrt2)x$,那么有 $a-b=1-1x-\sqrt2x-1+1x-\sqrt2x=-2\sqrt2x$,则

$A(x)=1+\frac{1}{2\sqrt2}(\frac{b-a}{ab})$

$A(x)=1+\frac{1}{2\sqrt2}(\frac{1}{a}-\frac{1}{b})$ 重新带回去得到

$A(x)=1+\frac{1}{2\sqrt2}(\frac{1}{1-(1+\sqrt2)x}-\frac{1}{1-(1-\sqrt2)x})$,因为 $\frac{1}{1-x}=\sum_{i=0}^{\infty }x^i$ 所以

$A(x)=1+\frac{1}{2\sqrt2}(\sum_{i=0}^{\infty }((1+\sqrt2)x)^i-\sum_{i=0}^{\infty }((1-\sqrt2)x)^i)$

$A(x)=1+\frac{1}{2\sqrt2}\sum_{i=0}^{\infty }((1+\sqrt2)^i-(1-\sqrt2)^i)x^i$,倒回去得到

$f_i=\frac{(1+\sqrt2)^i-(1-\sqrt2)^i}{2\sqrt2}$

然后可以本机打表求出 $C^2 \equiv 2( \mod 1e9+7)$,那么 $\sqrt2$ 在模 $1e9+7$ 下的逆元即为 $C$

然后直接快速幂即可

代码?这么好写就不用了吧...

 

标签:infty,P4451,frac,sqrt2,sum,lqp,sqrt2x,国家集训队,式子
来源: https://www.cnblogs.com/LLTYYC/p/11371854.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有