hdu 1021 Fibonacci Again(矩阵连乘 || 循环节)
来源:互联网 发布:易赛软件 编辑:程序博客网 时间:2024/05/16 18:14
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1021
Description
There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).
Input
Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000).
Output
Print the word "yes" if 3 divide evenly into F(n).
Print the word "no" if not.
Print the word "no" if not.
Sample Input
012345
Sample Output
nonoyesnonono
#include <iostream>#include <cstdio>using namespace std;struct matrie{ int m[2][2];};matrie A={ // f[n],f[n-1] ~ f[1],f[0] ~ pow=n-1 1,1, 1,0};matrie I={ 1,0, 0,1};matrie multi(matrie a,matrie b){ matrie c; for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ c.m[i][j]=0; for(int k=0;k<2;k++){ c.m[i][j]+=(a.m[i][k]*b.m[k][j])%3; } c.m[i][j]%=3; } } return c;}matrie power(int p){ matrie ans=I,tmp=A; // 矩阵结构体可以直接相等 while(p){ if(p&1) ans=multi(ans,tmp); tmp=multi(tmp,tmp); p>>=1; } return ans;}int main(){ //freopen("cin.txt","r",stdin); int n; while(cin>>n){ if(n==0){ puts("no"); continue; } matrie w=power(n-1); int ans=(w.m[0][0]*7+w.m[0][1]*11)%3; if(ans==0)puts("yes"); else puts("no"); } return 0;}循环节:
#include <iostream>#include <cstdio>using namespace std;typedef long long LL;LL f[100];int main(){ /*f[0]=7; f[1]=11; for(int i=2;i<40;i++){ f[i]=(f[i-1]+f[i-2])%3; cout<<f[i]<<" "; }*/ int n; while(cin>>n){ if((n-2)%4==0)printf("yes\n"); else puts("no"); } return 0;}
0 0
- hdu 1021 Fibonacci Again(矩阵连乘 || 循环节)
- fibonacci扩展+矩阵连乘
- hdu 3306 Another kind of Fibonacci 矩阵连乘
- HDU 3306 Another kind of Fibonacci 矩阵连乘
- hdu 3306 Another kind of Fibonacci(矩阵连乘)
- hdu 3117 Fibonacci Numbers(数学推导+矩阵连乘)
- 构造矩阵+矩阵连乘+fibonacci
- POJ3070 Fibonacci (矩阵连乘)
- hdu1588 Fibonacci and 矩阵连乘
- POJ 3070 Fibonacci【矩阵连乘】
- poj 3070 Fibonacci(简单矩阵连乘)
- Not Fibonacci(矩阵连乘)
- HDU 4549 矩阵连乘
- hdu 1757 矩阵连乘
- hdu 4920矩阵连乘
- hdu 3509 Buge's Fibonacci Number Problem(二项分布+矩阵连乘)
- hdu3306Another kind of Fibonacci(矩阵连乘&矩阵快速幂)
- HDU 1021 Fibonacci Again
- File类
- 字符串去除多余空格
- hdu-1879-继续畅通工程(克鲁斯卡尔求最小生成树)
- Myeclipse的动态web项目转为eclipse的动态web项目报错
- 内联函数释疑:static inline 和 extern inline 的含义及比较
- hdu 1021 Fibonacci Again(矩阵连乘 || 循环节)
- 关于Spring4与Hibernate4整合
- spring3.0引入的注解
- Java继承 封装 多态
- NYOJ--22--素数求和问题
- Activity类的创建
- 程序设计原则(整理)
- 通过vmstat的简单分析数据库操作
- 作为码农,我们为什么要写作