线性代数相关
矩阵
矩阵引入
矩阵引入来源于简洁表示线性方程组
例如:
可以表示为:
矩阵乘法
定义矩阵
矩阵快速幂
矩阵快速幂
重点在封装结构体,注意一些细节。
struct Matrix{ ll a[120][120];//有时也要维护行和列 Matrix(){ memset(a,0,sizeof(a));//清空!! } inline Matrix operator*(const Matrix &T) const{ Matrix res; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ //数据过大时,使用快速乘 res.a[i][k]+=a[i][j]*(T.a[j][k])%mod;//是+=!! res.a[i][k]%=mod; } } } return res; } }x; inline Matrix Mat_ksm(Matrix y,ll k){ Matrix res; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ res.a[i][j]=y.a[i][j]%mod; } } k--; while(k>0){ if(k&1) res=res*y; y=y*y; k=k>>1; } return res; }
矩阵加速递推
使用矩阵快速幂,将
类似动态规划的状态转移,明确转移前后矩阵,根据递推式推出后矩阵用前矩阵表示的各个系数,再构造矩阵存下系数,对着构造的矩阵做快速幂,最后乘上初始矩阵。
重点是构造转移矩阵。
例如:P1707 刷题比赛
复杂的构造矩阵
P4910 帕秋莉的手环
矩阵优化
本文作者:dayz-break
本文链接:https://www.cnblogs.com/dayz-break/p/18339797
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步