网站建设创业网站制作和收费标准
web/
2025/10/8 3:28:58/
文章来源:
网站建设创业,网站制作和收费标准,媒体软文推广平台,世界网站排名查询题目背景 矩阵快速幂 题目描述 给定n*n的矩阵A#xff0c;求A^k 输入输出格式 输入格式#xff1a; 第一行#xff0c;n,k 第2至n1行#xff0c;每行n个数#xff0c;第i1行第j个数表示矩阵第i行第j列的元素 输出格式#xff1a; 输出A^k 共n行#xff0c;每行n个数求A^k 输入输出格式 输入格式 第一行n,k 第2至n1行每行n个数第i1行第j个数表示矩阵第i行第j列的元素 输出格式 输出A^k 共n行每行n个数第i行第j个数表示矩阵第i行第j列的元素每个元素模10^97 输入输出样例 输入样例#12 1
1 1
1 1 输出样例#11 1
1 1 说明 n100, k10^12, |矩阵元素|1000 算法矩阵快速幂 如题矩阵快速幂。 已知矩阵乘法 第一个矩阵 5 6 7 8 9 4 第二个矩阵 2 3 7 2 4 8 8 3 6 相乘得 5*26*27*8 5*36*47*3 5*76*87*6 8*29*24*8 8*39*44*3 8*79*84*6 即 78 60 125 36 72 152 再利用快速幂可得答案。 最后附上经我们喻队 PIPIBoss 指点的代码 #includeiostream
#includecstdio
#includecstdlib
#includecmath
#define ll long long
using namespace std;
ll read()
{ll x0,y1;char chgetchar();while(ch0||ch9){if(ch-)y-1;chgetchar();}while(ch0ch9){xx*10ch-0;chgetchar();}return x*y;
}
int n;
ll k;
struct ju
{ll a[145][145];inline ju operator *(const ju b)const//inline用来定义内联函数即在类中用的函数可以加快速度。{ //该函数的作用是来重载*号运算符。ju tmp;for(int i1; in; i)for(int j1; jn; j){tmp.a[i][j]0;for(int k1; kn; k){tmp.a[i][j]a[i][k]*b.a[k][j];tmp.a[i][j]%1000000007;}}return tmp;}
}ans;
ju pow(ju a,ll k)
{ju tmpa;k--;while(k){if(k1)tmptmp*a;aa*a;k1;}return tmp;
}
int main()
{scanf(%d%lld,n,k);for(int i1; in; i)for(int j1; jn; j)ans.a[i][j]read();anspow(ans,k);for(int i1; in; i){for(int j1; jn; j)printf(%lld ,ans.a[i][j]);putchar(\n);}return 0;
}// FOR C.H. 最后的最后别忘了加上头文件我一开始就是因为没加头文件错了几次。转载于:https://www.cnblogs.com/gshdyjz/p/7134261.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88846.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!