hdu4549 矩阵快速幂
来源:互联网 发布:淘宝店铺刷信誉多少钱 编辑:程序博客网 时间:2024/05/17 01:58
https://code.csdn.net/snippets/649337
#include <stdio.h>#include <algorithm>#include <iostream>#include <string.h>using namespace std;const int MOD=1e9+7;struct Matrix{ long long mat[2][2];};Matrix mul(Matrix a,Matrix b){ Matrix ret; for(int i=0;i<2;i++) for(int j=0;j<2;j++) { ret.mat[i][j]=0; for(int k=0;k<2;k++) { ret.mat[i][j]+=a.mat[i][k]*b.mat[k][j]; ret.mat[i][j]%=(MOD-1); } } return ret;}Matrix pow_M(Matrix a,int n){ Matrix ret; memset(ret.mat,0,sizeof(ret.mat)); ret.mat[0][0]=ret.mat[1][1]=1; Matrix temp=a; while(n) { if(n&1)ret=mul(ret,temp); temp=mul(temp,temp); n>>=1; } return ret;}long long pow_m(long long a,long long n){ long long ret=1; long long temp=a%MOD; while(n) { if(n&1) { ret*=temp; ret%=MOD; } temp*=temp; temp%=MOD; n>>=1; } return ret;}int main(){ int a,b,n; Matrix tmp; tmp.mat[0][0]=0; tmp.mat[0][1]=tmp.mat[1][0]=tmp.mat[1][1]=1; while(scanf("%d%d%d",&a,&b,&n)==3) { Matrix p=pow_M(tmp,n); //printf("%d %d %d %d\n",p.mat[0][0],p.mat[1][0],p.mat[0][1],p.mat[1][1]); int ans=(pow_m(a,p.mat[0][0])*pow_m(b,p.mat[1][0]))%MOD; printf("%d\n",ans); } return 0;}
0 0
- hdu4549 矩阵快速幂
- hdu4549之矩阵快速幂
- hdu4549(费马小定律+矩阵快速幂)
- hdu4549 M斐波那契数列(矩阵快速幂)
- HDU4549 M斐波那契数列【矩阵快速幂】
- hdu4549(费马小定理 + 快速幂)
- M斐波那契数列(hdu4549矩阵二分幂+二分快速幂)
- hdu4549——M斐波那契数列(费马小定理+矩阵快速幂)
- hdu4549 M斐波那契数列 (矩阵快速幂+费马小定理)
- HDU4549(欧拉函数+快速幂)
- hdu4549 M斐波那契数列 【矩阵快速幂+快速幂+欧拉函数降次】
- 解题报告:HDU4549 M斐波那契数列 数论三大基础(快速幂+矩阵快速幂+费马小定理)
- hdu4549
- hdu4549
- 快速矩阵快速幂
- hdu4549 斐波那契数列(乘法递推) + 欧拉定理 (快速幂,模幂)
- 转移矩阵+矩阵快速幂
- 矩阵乘法 矩阵快速幂
- linux pppoe移植方法
- 机器人视觉跟踪与控制研究(一)
- virtio-blk后端处理-请求接收、解析、提交
- 發佈無線充電IC系列產品
- 仿微信朋友圈/qq空间评论 下载刷新下拉加载回复、评论等
- hdu4549 矩阵快速幂
- 行孝——长沙爱之心老年公寓送温暖
- css基础学习笔记
- [学习笔记]SSH连接虚拟机上RedHat的问题
- ns2中程序未执行完无trace文件探究
- MySQL 获取连续范围
- MFC调试的几个技巧
- 信管14:类的继承示代码1
- 实现类似iPhone的Notification-在Service中添加悬浮窗