fibonacci数列的性质:

1.gcd(fib(n),fib(m))=fib(gcd(n,m))

证明:可以通过反证法先证fibonacci数列的任意相邻两项一定互素,然后可证n>m时gcd(fib(n),fib(m))=gcd(fib(n-m),fib(m)),递归可

求gcd(fib(n),fib(m))=gcd(fib(k),fib(l)),最后k=l,不然继续递归。K是通过展转相减法求出,易证k=gcd(n,m),所以gcd(fib(n),fib(m))

=fib(gcd(n,m))。

 

2.如果fib(k)能被x整除,则fib(k*i)都可以被x整除。

3.f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1

4.f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)

5.f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1

6.[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)

7.f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1

8.f(n+m)=f(n+1)·f(m)+f(n)*f(m-1)

9.[f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)

10.f(2n-1)=[f(n)]^2-[f(n-2)]^2

11.3f(n)=f(n+2)+f(n-2)

12.f(2n-2m-2)[f(2n)+f(2n+2)]=f(2m+2)+f(4n-2m) [ n〉m≥-1,且n≥1]

 

还有一个结论:

计算(a/b)%c  其中b能整除a

如果b与c互素,则(a/b)%c=a*b^(phi(c)-1)%c

如果b与c不互素,则(a/b)%c=(a%bc)/b

对于b与c互素和不互素都有(a/b)%c=(a%bc)/b成立


附上代码:

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;#define  LL long long struct matrix{LL f[2][2];
};const int N=16000000;
int prime[16000000];
LL p[13000011];void init(){int i,j;int k=1;memset(prime,0,sizeof(prime));p[0]=1;k=1;for(i=2;i<=N;i++){if(prime[i]==0){p[k++]=i;for(j=2*i;j<=N;j+=i){prime[j]=1;}}}p[1]=3;p[2]=4;
}matrix multi(matrix a,matrix b,int MOD)
{struct matrix c;int i,j,k;for(i=0;i<2;i++){for(j=0;j<2;j++){c.f[i][j]=0;for(k=0;k<2;k++){c.f[i][j]=(c.f[i][j]+(a.f[i][k]*b.f[k][j])%MOD)%MOD;}}}return c;
}matrix quick_pow(int k,int MOD)
{int i;struct matrix s;memset(s.f,0,sizeof(s.f));for(i=0;i<2;i++) s.f[i][i]=1;struct matrix a;a.f[0][0]=1;a.f[0][1]=1;a.f[1][0]=1;a.f[1][1]=0;while(k){if(k&1){s=multi(s,a,MOD);}a=multi(a,a,MOD);k=k>>1;}return s;
}int main(){int i,k,x,m;int t;init();scanf("%d",&t);struct matrix ans;while(t--){scanf("%d%d%d",&k,&x,&m);for(i=p[k];;i++){ans = quick_pow(i-1,x);if(ans.f[0][0]%x==0) break;}ans = quick_pow(i-1,x*m);printf("%lld\n",ans.f[0][0]/x);}return 0;
}

zoj 3707 Calculate Prime S相关推荐

  1. 线段树 + 矩阵 --- ZOJ 3772 Calculate the Function

    Calculate the Function Problem's Link:   http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCod ...

  2. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

  3. fibonacci数列的性质(ZOJ3707)

    题目:Calculate Prime S   题意: Define S[n] as the number of subsets of {1, 2, ...,n} that contain no con ...

  4. python求素数算法_Python程序最多可计算n个质数(使用不同算法)

    python求素数算法 There are various methods through which we can calculate prime numbers upto n. 我们可以通过多种方 ...

  5. ZOJ 3988 2017CCPC秦皇岛 H:Prime Set(二分匹配)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3988 题意: 给你n个数,如果{i, j}满足i!=j & ...

  6. POJ ZOJ题目分类

    POJ,ZOJ题目分类(多篇整合版,分类很细致,全面) 标签: 题目分类POJ整理 2015-04-18 14:44 1672人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: ACM资料(5) ...

  7. POJ,ZOJ题目分类(多篇整合版,分类很细致,全面)

    水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一.基本算法:        (1)枚举 (1753,2965)       (2)贪心(13 ...

  8. ZOJ 2723 Semi-Prime ||ZOJ 2060 Fibonacci Again 水水水!

    两题水题: 1.如果一个数能被分解为两个素数的乘积,则称为Semi-Prime,给你一个数,让你判断是不是Semi-Prime数. 2.定义F(0) = 7, F(1) = 11, F(n) = F( ...

  9. 【HDU/POJ/ZOJ】Calling Extraterrestrial Intelligence Again (素数打表模板)

    http://poj.org/problem?id=1411  POJ http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=168 ...

最新文章

  1. 浅析CSS——元素重叠及position定位的z-index顺序
  2. mysql from_unixtime_MySQL 数据库中日期与时间函数 FROM_UNIXTIME(), UNIX_TIME() ...
  3. 浅谈MD5加密算法中的加盐值(SALT)
  4. 国外学校css profile,CSS Print Profile
  5. python 多个列表合并_Python对两个有序列表进行合并和排序的例子
  6. MTU MSS 详解记录
  7. linux脚本实现多重管道,制作Linux shell时流重定向和管道
  8. 【机器学习-西瓜书】八、集成学习:结合策略;多样性;总结
  9. CCCC-GPLT L2-019. 悄悄关注 团体程序设计天梯赛
  10. verilog实现四位全加器(基于一位全加器)
  11. BP神经网络做数据预测
  12. vue省市区三级联动(行政区划代码)
  13. 2019最新IDEA Java教学视频课程资料
  14. 鸡啄米:C++编程入门系列之四(数据类型)
  15. linux显卡用amd还是NVIDIA,Linux NVIDIA显卡驱动年度横评,不同于AMD,NVI
  16. P28 Elastic Beanstalk
  17. python 使用cv2、io.BytesIO处理图片二进制数据
  18. Excel: vlookup函数简介、使用注意事项及查找结果显示#N/A的解决方法
  19. 《Generating Question Relevant Captions to Aid Visual Question Answering》(生成问题相关标题,以帮助视觉回答问题)论文解读
  20. 作文指导百法·9.从阅读中积累素材

热门文章

  1. Win32多线程编程(1) — 基础概念篇
  2. IOCP 浅析与实例
  3. Flink 状态一致性:端到端状态一致性的保证
  4. Linux 基础I/O :文件描述符,重定向,文件系统,软链接和硬链接,动态库和静态库
  5. Soul网关发布2.1.X之后,它到底有多方便?
  6. 程序员十大心愿,程序员:你这么了解我的心声的嘛!
  7. LiveVideoStack线上分享第三季(十三):腾讯云LiteAVSDK演进之路
  8. 音视频技术开发周刊 60期
  9. Lua的require使用
  10. Vue中的 computed 和 watch的区别