51nod_1236_序列求和 V3 _组合数学
51nod_1236_序列求和 V3 _组合数学
Fib(n)表示斐波那契数列的第n项,Fib(n) = Fib(n-1) + Fib(n-2)。Fib(0) = 0, Fib(1) = 1。
$S(n,k)=\frac{1}{\sqrt 5^k}\sum\limits_{i=1}^{n}((\frac{1+\sqrt 5}{2})^i-(\frac{1-\sqrt 5}{2})^i)^k$
$=\frac{1}{\sqrt 5^k}\sum\limits_{i=1}^{n}\sum\limits_{j=0}^{k}C(k,j)*(-1)^{k-j}*(\frac{1+\sqrt 5}{2})^{ij}*(\frac{1-\sqrt 5}{2})^{i(k-j)}$
$=\frac{1}{\sqrt 5^k}\sum\limits_{j=0}^{k}C(k,j)*(-1)^{k-j}\sum\limits_{i=1}^{n}(\frac{1+\sqrt 5}{2})^{ij}*(\frac{1-\sqrt 5}{2})^{i(k-j)}$
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#include <cmath>
using namespace std;
typedef long long ll;
#define mod 1000000009
#define N 100050
#define G5 383008016
ll fac[N],inv[N];
ll P,Q;
ll qp(ll x,ll y) {
x=(x%mod+mod)%mod;
ll re=1; for(;y;y>>=1ll,x=x*x%mod) if(y&1ll) re=re*x%mod; return re;
}
void init() {
int i;
for(fac[0]=1,i=1;i<=100000;i++) fac[i]=fac[i-1]*i%mod;
inv[100000]=qp(fac[100000],mod-2);
for(i=99999;i>=0;i--) inv[i]=inv[i+1]*(i+1)%mod;
}
ll C(ll n,ll m) {
return fac[n]*inv[m]%mod*inv[n-m]%mod;
}
ll Sum(ll x,ll n) {
if(x==1) return n%mod;
if(x==0) return 0;
return (qp(x,n+1)-x)%mod*qp(x-1,mod-2)%mod;
}
ll solve(ll n,int K) {
int j; ll ans=0;
for(j=0;j<=K;j++) {
int opt=((K-j)&1)?-1:1;
ll t1=C(K,j),t2=opt,t3=Sum(qp(P,j)*qp(Q,K-j)%mod,n);
ans=((ans+t1*t2%mod*t3%mod)%mod+mod)%mod;
}
return ans;
}
int main() {
init();
ll i2=qp(2,mod-2);
P=(1+G5)*i2%mod; Q=((1-G5)*i2%mod+mod)%mod;
int T;
ll n; int K;
scanf("%d",&T);
ll ig5=qp(G5,mod-2);
while(T--) {
scanf("%lld%d",&n,&K);
printf("%lld\n",qp(ig5,K)*solve(n,K)%mod);
}
}
51nod_1236_序列求和 V3 _组合数学的更多相关文章
- 51nod1236 序列求和 V3
这题炒鸡简单,只要第一步想对了后面顺风顺水QWQ(然鹅我没想到) 前置芝士: 斐波那契数列通项公式 等比数列求和公式 二项式定理 这题要求的就是 \(\sum_{i=1}^n Fib(i)^k\) , ...
- 51nod1236 序列求和 V3 【数学】
题目链接 51nod1236 题解 用特征方程求得斐波那契通项: \[f(n) = \frac{(\frac{1 + \sqrt{5}}{2})^{n} - (\frac{1 - \sqrt{5}}{ ...
- [51nod1236] 序列求和 V3(斐波那契数列)
题面 传送门 题解 把求和的柿子用斐波那契数列的通项公式展开 \[ \begin{aligned} Ans &=\sum\limits_{i = 1}^{n} \left(\frac{(\fr ...
- BZOJ_4517_[Sdoi2016]排列计数_组合数学
BZOJ_4517_[Sdoi2016]排列计数_组合数学 Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[ ...
- HDU 1588 Gauss Fibonacci(矩阵高速幂+二分等比序列求和)
HDU 1588 Gauss Fibonacci(矩阵高速幂+二分等比序列求和) ACM 题目地址:HDU 1588 Gauss Fibonacci 题意: g(i)=k*i+b;i为变量. 给出 ...
- HDU 5358 First One 求和(序列求和,优化)
题意:给定一个含n个元素的序列,求下式子的结果.S(i,j)表示为seq[i...j]之和.注:对于log20可视为1.数据量n<=105. 思路:即使能够在O(1)的时间内求得任意S,也是需要 ...
- 51NOD 1258 序列求和 V4 [任意模数fft 多项式求逆元 伯努利数]
1258 序列求和 V4 题意:求\(S_m(n) = \sum_{i=1}^n i^m \mod 10^9+7\),多组数据,\(T \le 500, n \le 10^{18}, k \le 50 ...
- BZOJ_3398_[Usaco2009 Feb]Bullcow 牡牛和牝牛_组合数学
BZOJ_3398_[Usaco2009 Feb]Bullcow 牡牛和牝牛_组合数学 Description 约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛, ...
- BZOJ_3129_[Sdoi2013]方程_组合数学+容斥原理
BZOJ_3129_[Sdoi2013]方程_组合数学+容斥原理 Description 给定方程 X1+X2+. +Xn=M 我们对第l..N1个变量进行一些限制: Xl < = A ...
随机推荐
- PHP RSA加解密示例(转)
1.生成密钥和公钥 开始前需要准备openssl环境 linux 需要安装openssl工具包,传送门http://www.openssl.org/source/ window 下需要安装openss ...
- String 的fomat方法日期转换
一.常规类型.字符类型和数值类型的格式说明符的语法如下:%[argument_index$][flags][width][.precision]conversion 可选的 argument_inde ...
- sealed,new,virtual,abstract与override关键字的区别?
1. sealed——“断子绝孙” 密封类不能被继承.密封方法可以重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于方法或属性时,sealed修饰符必须始终与override一起使用. ...
- IdentityServer4 + SignalR Core +RabbitMQ 构建web即时通讯(一)
IdentityServer4 + SignalR Core +RabbitMQ 构建web即时通讯 前言 .net core 2.1已经正式发布了,signalr core1.0随之发布,是时候写个 ...
- ASP.NET动态网站制作(7)-- JS(2)
前言:这节课是JS的第二节课,主要是JS中的控制语句. 内容: 1.条件语句: (1)比较操作符:==,!=,>,>=,<,<=.字符串大小写转换:toUpperCase() ...
- python跳坑手记
解决python同目录报错:import util 改成 from . import util
- java log4j 日志文件
开发中经常会用到log日志文件,根据业务需要可能不产生很大日志文件给维护和[排错带来了麻烦.所以我们希望能够每天或每个月产生一个日志文件,这样文件不至于过大. 或者根据日志文件大小来判断,超过规定大小 ...
- python 基础及资料汇总
Python 包.模块.类以及代码文件和目录的一种管理方案 Numpy 小结 用 Python 3 的 async / await 做异步编程 K-means 在 Python 中的实现 ...
- 【BZOJ4276】[ONTAK2015]Bajtman i Okrągły Robin 线段树优化建图+费用流
[BZOJ4276][ONTAK2015]Bajtman i Okrągły Robin Description 有n个强盗,其中第i个强盗会在[a[i],a[i]+1],[a[i]+1,a[i]+2 ...
- client网络优化方法
减小图片大小(使用WebP格式的图片) 大部分的Facebook应用数据都是图片,因此降低图片的大小就能够较少数据的下载量.从而加快下载速度,这一点在高延迟的网络环境下很重要.Facebook返回给 ...