Solution:

1.快速幂:数/矩阵

2.以证明1000000007是素数。

费马小定理:

若p是素数,gcd(a,p)=1,则a^(p-1)1(mod p)。

若a^b mod p 中b很大,则可以简化为a^b mod p=a^[b mod (p-1)] mod p

证明如下:

b=t*(p-1)+r,其中r为b除以(p-1)的余数,即为b mod (p-1)。

a^b=(a^(p-1))^t * a^r  1^t * a^r  a^r (mod p)

费马小定理的推广:如果p为质数,xp-x(x是任意正整数)必能被p整除

注意是对b,对结果分别是取模(p-1),取模p;不要同时取模p或同时取模(p-1)!

 #include <stdio.h>
#include <stdlib.h> #define yu_ 1000000006
#define yu 1000000007 int main()
{
//f[n]=a^x(n-1)*b^x(n)
//a^f(n-1) = a^(f(n-1)%1000000006) (mod 1000000007)
//1000000007 is a prime
long n,nn,w,i,c[];
__int64 x[],y[],u[],v[],p,q,s,t,pp,qq,ss,tt,a,b,result;
x[]=;
y[]=;
u[]=;
v[]=;
for (i=;i<;i++)
{
x[i]=(x[i-]*x[i-]+y[i-]*u[i-])%yu_;
y[i]=(y[i-]*(x[i-]+v[i-]))%yu_;
u[i]=(u[i-]*(x[i-]+v[i-]))%yu_;
v[i]=(y[i-]*u[i-]+v[i-]*v[i-])%yu_;
}
while (scanf("%ld%ld%ld",&c[],&c[],&n)!=EOF)
{
if (n==)
{
printf("%ld\n",c[]);
continue;
}
else if (n==)
{
printf("%ld\n",c[]);
continue;
}
result=;
for (i=;i<;i++)
{
p=;
q=;
s=;
t=;
//a:n-2 b:n-1
nn=n+i-;
w=;
while (nn)
{
if ((nn & )==)
{
pp=p;
qq=q;
ss=s;
tt=t;
p=(pp*x[w]+qq*u[w])%yu_;
q=(pp*y[w]+qq*v[w])%yu_;
s=(ss*x[w]+tt*u[w])%yu_;
t=(ss*y[w]+tt*v[w])%yu_;
}
w++;
nn>>=;
}
//f(n)/f(n+1)
p=(p+q)%yu_;
a=;
b=c[i];
while (p)
{
if ((p & )==)
a=(a*b)%yu;
p>>=;
b=(b*b)%yu;
}
result=(result*a)%yu;
}
printf("%I64d\n",result);
}
return ;
}

最新文章

  1. jquery的几种ajax提交方式
  2. 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
  3. opencv直线检测在c#、Android和ios下的实现方法
  4. Oracle RAC的日志体系
  5. hdu 1052 (greedy algorithm) 分类: hdoj 2015-06-18 16:49 35人阅读 评论(0) 收藏
  6. [under the hood]Reduce EXE and DLL Size with LIBCTINY.LIB
  7. Maven实战(三)Eclipse构建Maven项目
  8. ios 学习 广告图片轮播器
  9. (图 BFS)走迷宫
  10. 对于fmri的hrf血液动力学响应函数的一个很直观的解释-by 西南大学xulei教授
  11. FZU 2105-Digits Count(线段树延时标记)
  12. JAVA与C++的区别和联系
  13. Android中Cursor类的概念和用法
  14. NGUI 添加回调函数
  15. APICloud框架——总结一下最近开发APP遇到的一些问题
  16. C++中printf和scanf的用法
  17. 【浅谈web安全】大企业安全:从员工下手
  18. linux小白成长之路8————访问Docker中的mysql
  19. Git使用(二、分支的创建和上传)
  20. 图解Redis之数据结构篇——字典

热门文章

  1. Windows10 家庭版 Docker的安装
  2. Nginx+keepalived 双机热备(主主模式)
  3. Redis学习笔记之多机数据库
  4. 《Linux内核分析》第六周学习总结
  5. SVN解决冲突
  6. github使用心得和链接
  7. C#微信扫码支付Demo
  8. CentOS Mininal 安装VMtools的方法
  9. mysql数据库优化大全
  10. Educational Codeforces Round 26 B,C