矩阵乘法:A的行*B的列
小技巧 :
在用函数调用 矩阵的时候,直接 利用一个结构体去解决
struct sfs{ long long a[M][M]; }p,ans; int n; long long m; sfs xx(sfs a, sfs b) { sfs box; for(ri i=1;i<=n;i++) for(ri j=1;j<=n;j++) box.a[i][j]=0; for(ri i=1;i<=n;i++) for(ri j=1;j<=n;j++) for(ri k=1;k<=n;k++) box.a[i][j]+=(a.a[i][k]*b.a[k][j])%P,box.a[i][j]%=P; return box; } void qsn(sfs a,long long b) // 调用的函数是里面的 类型 { for(ri i=1;i<=n;i++) { ans.a[i][i]=1; } while(b) { if(b&1) ans=xx(ans,a); b>>=1; a=xx(a,a); } }View Code
标签:ni,矩阵,sfs,long,xx,函数调用,乘法 来源: https://www.cnblogs.com/Lamboofhome/p/15541500.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。