51 nod 1126 求递推序列的第N项 矩阵快速幂
来源:互联网 发布:2016张北云计算招聘 编辑:程序博客网 时间:2024/06/01 20:34
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126
题意:有下面这个式子:F1=1,F2=1.F[n]=(A*F[n-1]+B*F[n-2])%7 (n>=3) .
求给定A,B,N,求F[N].
智障一样的找了一个小时:1.矩阵式n-2次方,2,F1=1,不是等于0啊。
#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstring>#include<string>#include<set>#include<stack>#include<algorithm>#define cle(a) memset(a,0,sizeof(a))#define inf(a) memset(a,0x3f,sizeof(a))#define ll long long#define Rep(i,a,n) for(int i=a;i<=n;i++)using namespace std;const int INF = ( 2e9 ) + 2;const int mod = 7;int c[2][2];void mul(int e[][2],int a[][2],int b[][2]){ int t[2][2]; memset(t,0,sizeof(t)); for(int i=0;i<2;i++) for(int j=0;j<2;j++) for(int k=0;k<2;k++) t[i][j]=(t[i][j]+((a[i][k]*b[k][j])%mod+mod)%mod)%mod; for(int i=0;i<2;i++) for(int j=0;j<2;j++) e[i][j]=t[i][j]; return;}void qPow(int n){ int ret[2][2]; memset(ret,0,sizeof(ret)); for(int i=0;i<2;i++)ret[i][i]=1; while(n) { if(n&1) mul(ret,ret,c); mul(c,c,c); n>>=1; } for(int i=0;i<2;i++) for(int j=0;j<2;j++) c[i][j]=ret[i][j];}int main(){ int a,b,n;// freopen("in.txt","r",stdin); scanf("%d%d%d",&a,&b,&n); c[0][0]=0; c[0][1]=1; c[1][0]=b; c[1][1]=a; qPow(n-2); printf("%d\n",(c[1][1]+c[1][0])%mod);}
阅读全文
0 0
- 51nod 1126 求递推序列的第N项 (矩阵快速幂)
- 51 nod 1126 求递推序列的第N项(矩阵快速幂)
- 51nod 1126 求递推序列的第N项(矩阵快速幂、循环)
- 51nod 1126 求递推序列的第N项(矩阵快速幂)
- 51nod 1126 求递推序列的第N项 矩阵快速幂
- 51 nod 1126 求递推序列的第N项 矩阵快速幂
- 51nod 1126 求递推序列的第N项【矩阵快速幂】
- 51Nod 1126 求递推序列的第N项 矩阵快速幂
- 51nod 求递推序列的第N项(矩阵快速幂、模拟求循环长度)
- 【51nod 1126】求递推序列的第N项 【矩阵快速幂】or【枚举找循环节】
- 51Nod Problem 1126 求递推序列的第N项(构造矩阵)
- [51NOD]1126 求递推序列的第N项 [线性递推关系与矩阵乘法]
- 1126 求递推序列的第N项(51nod)
- 51nod 1126 求递推序列的第N项
- 51nod 1126 求递推序列的第N项
- 51nod 1126 求递推序列的第N项
- 51nod-【1126 求递推序列的第N项】
- 51Nod 1126 求递推序列的第N项
- bootstrap button 刷新
- 六度分离 (Floyd-Warshall)
- python读取MNIST image数据
- BZOJ 3240: [Noi2013]矩阵游戏 矩阵乘法 费马小定理
- Spring Jpa 实体类字段与数据库关键字冲突解决
- 51 nod 1126 求递推序列的第N项 矩阵快速幂
- 关于java 序列化的原理
- http状态码
- 谷歌论文之Google File System(中文)
- android studio启动报错(连接超时)
- 网络流入门—用于最大流的Dinic算法
- Connection to 10.17.1.226:5672 failed: timeout
- 闭包基础
- ARM时钟寄存器配置之设置时钟源