博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod1126【矩阵快速幂】
阅读量:4949 次
发布时间:2019-06-11

本文共 1079 字,大约阅读时间需要 3 分钟。

思路:

自己的一点心得:中间矩阵为最终矩阵。
搞出来很简单的;

#include 
using namespace std;const int N=1e2+10;const int mod=7;struct asd{ int num[3][3];};asd mul(asd a,asd b){ asd ans; memset(ans.num,0,sizeof(ans.num)); for(int i=0;i<2;i++) for(int j=0;j<2;j++) for(int k=0;k<2;k++) ans.num[i][j]=(ans.num[i][j]+a.num[i][k]*b.num[k][j])%mod; return ans;}asd quickmul(int g,asd x){ asd ans; for(int i=0;i<2;i++) for(int j=0;j<2;j++) { if(i==j) ans.num[i][j]=1; else ans.num[i][j]=0; } while(g) { if(g%2) ans=mul(ans,x); x=mul(x,x); g>>=1; } return ans;}int main(){ int c,a,b,n; asd x,ans; scanf("%d%d%d",&a,&b,&n); if(n==1||n==2) { puts("1"); return 0; } x.num[0][0]=a;x.num[0][1]=b; x.num[1][0]=1;x.num[1][1]=0; ans=quickmul(n-2,x); c=ans.num[0][0]+ans.num[0][1]; while(c<0) c+=mod; printf("%d\n",c%mod); return 0;}

转载于:https://www.cnblogs.com/keyboarder-zsq/p/5934823.html

你可能感兴趣的文章
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
UVa11078:Open Credit System
查看>>
MongoDB的简单使用
查看>>
git clone 遇到的问题
查看>>
hdfs 命令使用
查看>>
hdu 1709 The Balance
查看>>
prometheus配置
查看>>
定宽320 缩放适配手机屏幕
查看>>
BZOJ 2120 数颜色 【带修改莫队】
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
Codeforces 40 E. Number Table
查看>>
CLR via C#(第3 版)
查看>>
java语法之final
查看>>
关于响应式布局
查看>>
详解ASP.Net 4中的aspnet_regsql.exe
查看>>
python 多进程和多线程的区别
查看>>
hdu1398
查看>>
[android] 网络断开的监听
查看>>