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

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

1 #include
2 #include
3 using namespace std; 4 int n,f; 5 struct Matrix{ 6 long long v[105][105]; 7 }A,Ans; 8 Matrix operator *(Matrix A,Matrix B){ 9 Matrix C;10 memset(C.v,0,sizeof(C.v));11 for(int i=1;i<=n;i++){12 for(int j=1;j<=n;j++){13 for(int k=1;k<=n;k++){14 C.v[i][j]+=(A.v[i][k]%1000000007)*(B.v[k][j]%1000000007);15 C.v[i][j]%=1000000007;16 }17 }18 }19 return C;20 }21 Matrix fastpower(Matrix A,long long n){22 Matrix Mid=A;23 while(n){24 if(n%2)25 Mid=A*Mid;26 A=A*A;27 n>>=1;28 }29 return Mid;30 }31 int main(){32 scanf("%d%d",&n,&f);33 for(int i=1;i<=n;i++){34 for(int j=1;j<=n;j++){35 scanf("%lld",&A.v[i][j]);36 }37 }38 Ans=fastpower(A,f-1);39 for(int i=1;i<=n;i++){40 for(int j=1;j<=n;j++){41 printf("%lld ",Ans.v[i][j]);42 }43 printf("\n");44 }45 return 0;46 }

 

转载于:https://www.cnblogs.com/al76/p/8288144.html

你可能感兴趣的文章
sql之left join、right join、inner join的区别
查看>>
垂直居中及容器内图片垂直居中的CSS解决方法
查看>>
字符编码笔记:ASCII,Unicode 和 UTF-8
查看>>
java枚举类型enum的使用
查看>>
springBoot Ribbon Hystrix
查看>>
Oracle - 拼接多个字段 - wm_concat()函数
查看>>
常识的力量 - 防止错得太远
查看>>
[dubbo实战] dubbo+zookeeper伪集群搭建
查看>>
FI & RI
查看>>
springboot(5)单元测试及MockMVC类的使用及自定义异常处理
查看>>
Repeater控件用法
查看>>
PowerShell+NetApi 批处理执行程序
查看>>
渣渣小本求职复习之路每天一博客系列——Java基础(6)
查看>>
形态学滤波(1):腐蚀与膨胀
查看>>
redis-cluster 单个节点不可用
查看>>
离散型朴素贝叶斯实现
查看>>
火狐 SSL 收到了一个弱临时 Diffie-Hellman 密钥的解决办法
查看>>
verilog 运算符与优先级
查看>>
大神教你Nginx常用基础配置方案
查看>>
POJ 3207 【2-sat】.cpp
查看>>