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

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

就算告诉我是矩阵快速幂我也推不出递推式呀!!!

官方题解:

对于任意i>=1,当j>=3时,有通过归纳法可以得到 

进而推导出 

后来自己重新推导了一遍

 

 

#include 
#include
#include
#include
#include
using namespace std;typedef long long ll;const ll Mod=1e9+7;const int msize=2;const int N=4;struct Mat{ ll mat[N][N];};Mat operator *(Mat a, Mat b){ Mat c; memset(c.mat, 0, sizeof(c.mat)); for(int k = 0; k < msize; ++k) for(int i = 0; i < msize; ++i) if(a.mat[i][k]) for(int j = 0; j < msize; ++j) if(b.mat[k][j]) c.mat[i][j] = (c.mat[i][j] +a.mat[i][k] * b.mat[k][j])%Mod; return c;}Mat operator ^(Mat a, ll k){ Mat c; memset(c.mat,0,sizeof(c.mat)); for(int i = 0; i < msize; ++i) c.mat[i][i]=1; for(; k; k >>= 1) { if(k&1) c = c*a; a = a*a; } return c;}Mat operator -(Mat a,Mat b){ for(int i=0; i

 

转载于:https://www.cnblogs.com/pach/p/7251626.html

你可能感兴趣的文章
如何优雅的编写 JavaScript 代码
查看>>
MySQL 聚合函数
查看>>
Ubuntu16.10安装Ocata之2:Keystone
查看>>
IGMPv3
查看>>
ZeroMQ(java)之Router/Dealer模式
查看>>
Linux下的文件查找命令
查看>>
TCP/IP协议碎碎念
查看>>
django 将表数据通过API展示到页面上
查看>>
linux用户登录检测发送邮件提醒
查看>>
SQL Server FullText解决Like字句性能问题
查看>>
Ceph实验室:第五课:Ceph运维之换盘
查看>>
C++实践参考——复数类中的运算符重载
查看>>
【Spark Summit East 2017】为了乐趣和利润的全球扩张
查看>>
Rss订阅
查看>>
Mac - gdb配置
查看>>
Vuejs——(4)v-if、v-for
查看>>
让Spark成为你的瑞士军刀
查看>>
[LeetCode]--40. Combination Sum II
查看>>
ART世界探险(16) - 快速编译器下的方法编译
查看>>
多线程常用方法 sleep wait join等以及对锁的控制
查看>>