2014 Super Training #7 F Power of Fibonacci --数学+逆元+快速幂
原题:ZOJ 3774 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3774
----------------------------------------------------------------------------------------------------------------------
这题比较复杂,看这篇比较详细:http://blog.csdn.net/acdreamers/article/details/23039571
结论就是计算:

充分利用了快速幂及求逆元。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#define Mod 1000000009
#define ll long long
using namespace std;
#define N 100007 ll fac[N],A[N],B[N]; void init()
{
int i;
fac[] = ;
for(i=;i<N;i++)
fac[i] = fac[i-]*i%Mod;
A[] = B[] = ;
for(i=;i<N;i++)
{
A[i] = A[i-]* % Mod;
B[i] = B[i-]* % Mod;
}
} ll fastm(ll n,ll k,ll MOD)
{
ll res = 1LL;
n %= MOD;
while(k)
{
if(k&1LL)
res = (res*n)%MOD;
k >>= ;
n = n*n%MOD;
}
return res;
} ll Inv(ll n,ll MOD)
{
return fastm(n,MOD-,MOD);
} int main()
{
int cs;
ll n,k;
init();
ll ans,r;
scanf("%d",&cs);
while(cs--)
{
scanf("%lld%lld",&n,&k);
ans = ;
for(r=;r<=k;r++)
{
ll t = A[k-r]*B[r] % Mod;
ll x = fac[k]; // k!
ll y = fac[k-r]*fac[r] % Mod; // (k-r)!*(r)!
ll c = x*Inv(y,Mod) % Mod; // c = C(k,r) = x/y = x*Inv(y)
ll tmp = t*(fastm(t,n,Mod)-)%Mod*Inv(t-,Mod)%Mod; //t(t^n-1)/(t-1) = t(t^n-1)*Inv(t-1)
if(t == )
tmp = n%Mod;
tmp = tmp*c%Mod;
if(r&1LL) // (-1)^r
ans -= tmp;
else
ans += tmp;
ans %= Mod;
}
//ans = ans*(1/sqrt(5))^k
ll m = Inv(,Mod)%Mod;
ans = ans*fastm(m,k,Mod)%Mod;
ans = (ans%Mod+Mod)%Mod;
printf("%lld\n",ans);
}
return ;
}
2014 Super Training #7 F Power of Fibonacci --数学+逆元+快速幂的更多相关文章
- 2014 Super Training #6 F Search in the Wiki --集合取交+暴力
原题: ZOJ 3674 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3674 题意不难理解,很容易想到用暴力,但是无从下 ...
- 2014 Super Training #9 F A Simple Tree Problem --DFS+线段树
原题: ZOJ 3686 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3686 这题本来是一个比较水的线段树,结果一个ma ...
- 2014 Super Training #2 F The Bridges of Kolsberg --DP
原题:UVA 1172 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- 2014 Super Training #1 F Passage 概率DP
原题: HDU 3366 http://acm.hdu.edu.cn/showproblem.php?pid=3366 本来用贪心去做,怎么都WA,后来看网上原来是一个DP题. 首先按P/Q来做排 ...
- hdu 3117 Fibonacci Numbers 矩阵快速幂+公式
斐波那契数列后四位可以用快速幂取模(模10000)算出.前四位要用公式推 HDU 3117 Fibonacci Numbers(矩阵快速幂+公式) f(n)=(((1+√5)/2)^n+((1-√5) ...
- 2014 Super Training #7 E Calculate the Function --矩阵+线段树
原题:ZOJ 3772 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3772 这题算是长见识了,还从没坐过矩阵+线段树的题 ...
- hdu3306 Another kind of Fibonacci【矩阵快速幂】
转载请注明出处:http://www.cnblogs.com/KirisameMarisa/p/4187670.html 题目链接:http://acm.hdu.edu.cn/showproblem. ...
- BZOJ3286 Fibonacci矩阵 矩阵 快速幂 卡常
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3286 题意概括 n,m,a,b,c,d,e,f<=10^1000000 题解 神奇的卡常题目 ...
- POJ 3070 Fibonacci 【矩阵快速幂】
<题目链接> Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 ...
随机推荐
- Hosts文件小结
今天又遇到Hosts,小结一下: Hosts文件是什么? Hosts文件从表象上来看是一个没有扩展名的系统文件.其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库&qu ...
- CRM Look Up 解决方案
CRM 前瑞开发中关于lookup的开发工作肯定会遇到,例如选中一个客户或者联系人后自动把相关的信息映射到相关记录上,这样可以减少用户的输入工作.我们在CRM 的映射关系中可以配置相关字段的映射可以解 ...
- 代码导出Reporting Services报表文件
背景部分 使用Reporting Services很容易制作和发布我们需要的报表,报表效果也还不错 不过如果报表数据过大或报表数量过多,打开及查看报表感觉可能就是另外一回事了 好在Reporting ...
- 限制UITextField输入内容的长度
一.前言 今天做手机号输入限制长度,例如我的textfield只能输入11位,如果再多输入的话就不再textfield中显示,只显示11位的手机号. 如果用ReactiveCocoa的话,这个很好解决 ...
- 【转】Visual Studio项目相对路径的设置,实用
这篇文章主要写给那些以前没有用过VS的新手,同时也是自己学习经验的积累,高手就不用看了以免浪费您宝贵的时间. 在VS的工程中常常要设置头文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只 ...
- 蓝牙Ibeacon室内定位和微信摇一摇周边原理分析
苹果推出Ibeacon室内定位技术是为了弥补GPS无法覆盖室内定位这种场景.苹果意味着创新,在其推动下,蓝牙Ibeacon得到了极大的应用.而腾讯则是利用蓝牙Ibeacon在场景体验方面进行了创新,实 ...
- OC中NSArray
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- Ruby安装
Windows下安装ruby 先安装ruby吧 点击安装,额,咳咳什么情况,好了 人是有国籍的,但知识无国界的 是这个意思吧,选择安装语言 选择安装目录 顺便勾选上添加到环境变量吧 安装完成 ...
- 使用batch insert解决MySQL的insert吞吐量问题
最近使用了一个非常简单易用的方法解决了业务上的一个insert吞吐量的问题,在此总结一下. 首先我们明确一下,insert吞吐量其实并不是指的IPS(insert per second),而是指的RP ...
- 单元测试_JUnit4的应用与实践
本文实例为:JUnit4+Eclipse+CVS的实践 目录 1.测试环境搭建 1.1 JDK安装部署 1.2 Eclipse安装部署 1.3 Eclipse添加JUnit4 1.4 CVS项目文件引 ...