博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P4451 [国家集训队]整数的lqp拆分(生成函数)
阅读量:5823 次
发布时间:2019-06-18

本文共 1480 字,大约阅读时间需要 4 分钟。

题面

题解

我对生成函数一无所知

我们设\(F(x)\)为斐波那契数列的生成函数,\(G(x)\)为答案的生成函数,那么容易得到递推关系

\[g_n=\sum_{i=0}^{n-1}f_ig_{n-i}+f_n\]

其中\(g_0=0,g_1=1\)

那么写成生成函数的形式就是

\[G=FG+F\]

\[G={F\over 1-F}\]

我们考虑一下\(F\),因为

\[F(x)=\sum_{i=1}^\infty f_ix^i\]

\[xF(x)=\sum_{i=2}^\infty f_{i-1}x^i\]

上面的柿子减去下面的柿子

\[(1-x)F(x)=x+\sum_{i=2}^\infty f_{i-2}x^i\]

\[(1-x)F(x)=x+x^2F(x)\]

解得

\[F(x)={x\over 1-x-x^2}\]

代入可解出

\[G(x)={x\over 1-2x-x^2}\]

我们把\(1-2x-x^2\)因式分解一下

\[G(x)={x\over \left(1-(1+\sqrt{2})x\right)\left(1-(1-\sqrt{2})x\right)}\]

然后裂项

\[G(x)={1\over 2\sqrt{2}}{1\over \left(1-(1+\sqrt{2})x\right)}-{1\over 2\sqrt{2}}{1\over \left(1-(1-\sqrt{2})x\right)}\]

那么现在就变成两个等比数列求和的形式了,可以直接求出\(g_n\)的通项公式

\[g_n={(1+\sqrt{2})^n-(1-\sqrt{2})^n\over 2\sqrt{2}}\]

听说大佬们用生成函数只要五行就能写完题解……然而我并看不懂它们在写什么……

//minamoto#include
#define R register#define fp(i,a,b) for(R int i=(a),I=(b)+1;i
I;--i)#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)using namespace std;const int P=1e9+7,s=59713600;inline int add(R int x,R int y){return x+y>=P?x+y-P:x+y;}inline int dec(R int x,R int y){return x-y<0?x-y+P:x-y;}inline int mul(R int x,R int y){return 1ll*x*y-1ll*x*y/P*P;}int ksm(R int x,R int y){ R int res=1; for(;y;y>>=1,x=mul(x,x))if(y&1)res=mul(res,x); return res;}int main(){// freopen("testdata.in","r",stdin); int n;scanf("%d",&n); printf("%d\n",mul(dec(ksm(s+1,n),ksm(P+1-s,n)),ksm(mul(s,2),P-2))); return 0;}

转载于:https://www.cnblogs.com/bztMinamoto/p/10557621.html

你可能感兴趣的文章
***常用兵器之扫描篇(下)
查看>>
maven异常:missing artifact jdk.tools:jar:1.6
查看>>
终端安全求生指南(五)-——日志管理
查看>>
我的友情链接
查看>>
lduan Exchange 2013 介绍(一)
查看>>
dubbo请求过程调用分析
查看>>
Nginx 使用 openssl 的自签名证书
查看>>
创业维艰、守成不易
查看>>
PHP环境安装套件:快速安装LAMP环境
查看>>
C语言实现“乘法口诀表”
查看>>
CSS3
查看>>
ul下的li浮动,如何是ul有li的高度
查看>>
C++ primer plus
查看>>
python mysqlDB
查看>>
UVALive 3942 Remember the Word Tire+DP
查看>>
Android之HttpClient
查看>>
从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~目录...
查看>>
被需求搞的一塌糊涂,怎么办?
查看>>
centos 7.2编译安装nginx-1.12.0
查看>>
c_数据结构_队的实现
查看>>