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

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

要求矩阵A的k次幂,矩阵快速幂加上二分求和

其中,矩阵相乘二分:A^2k=A^k*A^k,
                                        A^(2k+1)=A^k*A^k*A.
求和二分:A+A^2+A...+A^(2k+1)=   A+A^2+...+A^k+A^(k+1)+A^(k+1)*(A+A^2+...+A^k).
                   A+A^2+...+A^2k           =   A+A^2+...+A^k+A^k*(A+A^2+...+A^k).

 

#include 
#include
#include
#include
using namespace std;int N,k,m;struct matrix{ int a[35][35];}origin,res;matrix multiply(matrix x,matrix y){ matrix temp; memset(temp.a,0,sizeof(temp.a)); for(int i=0;i
>=1; origin=multiply(origin,origin); } } return multiply(res,origin);}*/matrix calc(int exp){ matrix p,q; p=origin; q=res; while (exp!=1) { if (exp&1) { exp--; q=multiply(p,q); } else { exp>>=1; p=multiply(p,p); } } return multiply(p,q);}matrix add(matrix x,matrix y){ matrix tmp; int i,j; for(i=0;i

 

 

转载于:https://www.cnblogs.com/pangblog/p/3359809.html

你可能感兴趣的文章
Docker官方tomcat镜像的使用
查看>>
3、DOM操作
查看>>
html自定义checkbox、radio、select —— checkbox、radio篇
查看>>
iDevice取证的一大突破
查看>>
java初学者笔记总结day4
查看>>
java泛型
查看>>
【优先队列】-HDU4546比赛难度
查看>>
操作系统简介
查看>>
正向代理--反向代理
查看>>
JavaScript实现多栏目切换效果
查看>>
Lazarus1.0.2 和 DelphiXE3 的一些异同
查看>>
Rapid 2D-to-3D conversion——快速2D到3D转换
查看>>
在Net下处理Json
查看>>
mbed学习之 PWMOUT
查看>>
【旧文章搬运】隐藏驱动完整攻略(基础篇)
查看>>
maven快速入门
查看>>
NSFileHandle(文件对接器)
查看>>
初试部署自己的网站到服务器
查看>>
随机获取10条数据的方法
查看>>
Linux下搭建Python开发环境部署
查看>>