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

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

题目:

矩阵快速幂模板。mod写到乘法的定义部分就行了。

别忘了 I ( ) 和 i n i t ( ) 要传引用!

#include
#include
#include
using namespace std;int n,p=10000;struct Matrix{ int a[2][2]; Matrix operator *(const Matrix &b)const { Matrix c; c.a[0][0]=c.a[1][0]=c.a[0][1]=c.a[1][1]=0; for(int i=0;i<=1;i++) for(int j=0;j<=1;j++) for(int k=0;k<=1;k++) (c.a[i][j]+=a[i][k]*b.a[k][j])%=p;// printf("i=%d j=%d c=%d\n",i,j,b.a[i][j]); return c; }};Matrix r,u;void I(Matrix &k){ k.a[0][0]=k.a[1][1]=1; k.a[0][1]=k.a[1][0]=0;}void init(Matrix &k){ k.a[0][0]=k.a[0][1]=k.a[1][0]=1; k.a[1][1]=0;}int main(){ while(1) { scanf("%d",&n);if(n==-1)return 0; if(!n){printf("0\n");continue;} n--;I(r);init(u); while(n) { if(n&1)r=r*u; n>>=1;u=u*u; } printf("%d\n",(r.a[1][0]+r.a[1][1])%p); }}

 

转载于:https://www.cnblogs.com/Narh/p/8981926.html

你可能感兴趣的文章
磁盘IO性能优化-实践
查看>>
iOS----------断言
查看>>
dubbo的jmeter压测时jar包的热加载/动态加载
查看>>
Flask之视图(二)
查看>>
多线程(四):前台和后台线程
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
9款免费的Windows远程协助软件
查看>>
Maven(八) Maven项目和testng结合应用
查看>>
iOS 的 set.get.构造方法
查看>>
无法根据中文查找
查看>>
转载 10 Python Machine Learning Projects on GitHub
查看>>
第三周作业
查看>>
软件工程第二次作业
查看>>
结束端口占用
查看>>
【微信公众平台】 之 消息自动回复
查看>>
ContentType
查看>>
[POJ2625][UVA10288]Coupons
查看>>
随机数
查看>>