矩阵的运算(HDU 1575)
来源:互联网 发布:lol美服mac版下载 编辑:程序博客网 时间:2024/04/29 18:15
Problem Description
A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。
Input
数据的第一行是一个T,表示有T组数据。
每组数据的第一行有n(2 <= n <= 10)和k(2 <= k < 10^9)两个数据。接下来有n行,每行有n个数据,每个数据的范围是[0,9],表示方阵A的内容。
每组数据的第一行有n(2 <= n <= 10)和k(2 <= k < 10^9)两个数据。接下来有n行,每行有n个数据,每个数据的范围是[0,9],表示方阵A的内容。
Output
对应每组数据,输出Tr(A^k)%9973。
Sample Input
22 21 00 13 999999991 2 34 5 67 8 9
Sample Output
22686//1354591 2009-05-10 10:11:59 Accepted 1575 0MS 268K 1362 B C++ Wpl #include <iostream>#define MAX 11using namespace std;typedef struct node{ int matrix[MAX][MAX];// int nn,mm; //m代表行,n代表列}Matrix;Matrix init,unit; //分别定义init为初始的输入矩阵,unit为单位矩阵int n,kk;void Init(){ int i,j; scanf("%d%d",&n,&kk); for(i=0;i<n;i++) for(j=0;j<n;j++) { scanf("%d",&init.matrix[i][j]); //输入初始矩阵 unit.matrix[i][j]=(i==j); //初始化初始矩阵 }}Matrix Mul(Matrix a,Matrix b)//据说传结构体比传数组快{ int i,j,k; Matrix c; for(i=0;i<n;i++) for(j=0;j<n;j++) { c.matrix[i][j] = 0; for(k=0;k<n;k++) c.matrix[i][j] += a.matrix[i][k]*b.matrix[k][j]; c.matrix[i][j]%=9973; } return c;}Matrix Cal(int k)//k代表幂,这里是利用二分法求矩阵的幂{ Matrix p,q; p = unit; //p为单位矩阵 q = init; //q为初始矩阵 while(k!=1) { if(k&1) //k是奇数 { k--; p = Mul(p,q); //如果k是奇数,那么就不能进行平均的二分,所以让p乘以一个单位矩阵,保证其不变,然后k--就可以进行二分了 } else //k是偶数 { k>>=1; //k除2 q = Mul(q,q); } } p = Mul(p,q); return p;}int main(){ Matrix r; int t; cin>>t; while(t--) { Init(); r=Cal(kk); int i,j,sum; i=0; sum=0; while(i<n) { sum+=r.matrix[i][i]; sum%=9973; i++; } printf("%d\n",sum); } return 0;}
0 0
- 矩阵的运算(HDU 1575)
- 矩阵的运算(HDU 1757)
- (5)矩阵的运算
- HDU 5097 Page Rank(模拟,矩阵运算)
- HDU 4965 Fast Matrix Calculation(利用矩阵运算性质)
- 矩阵的基本运算(C实现)
- Eigen矩阵的运算(二)
- 矩阵的一些运算
- 单一矩阵的运算
- 矩阵的运算
- MKL的矩阵运算
- 矩阵的运算STL
- 矩阵的乘法运算
- 矩阵的运算
- R的矩阵运算
- 矩阵的加法运算
- Matlab矩阵的运算
- opencv的矩阵运算
- 图论(名词解释)+hdu 最短路 专题:
- [Bluetooth(SDK)]使用WinSock连接到远程设备
- Struts Bean 标签库
- commit 与do_key('commit_form')区别
- 温故而知新,再次学习hibernate的配置关系
- 矩阵的运算(HDU 1575)
- [编程之美] PSet2.8 找符合条件的整数
- 关于VXLAN与异构云之间的集成 ( by quqi99 )
- Centos tomcat及mysql安装
- [Bluetooth(SDK)]使用WinSock搜索蓝牙设备
- struts2.3与struts2.2的不同之处
- [Delphi] Unit 'SimpleTimer' implicitly imported into package 'dclusr'解决办法
- iOS----四方块 动画按钮实现
- HttpWatch工具简介及使用技巧