九度 题目1443:Tr A
来源:互联网 发布:2016淘宝活动报名入口 编辑:程序博客网 时间:2024/06/06 02:57
题目来源:http://ac.jobdu.com/problem.php?pid=1443
- 题目描述:
A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。
- 输入:
数据的第一行是一个T,表示有T组数据。
每组数据的第一行有n(2 <= n <= 10)和k(2 <= k < 10^9)两个数据。接下来有n行,每行有n个数据,每个数据的范围是[0,9],表示方阵A的内容。
- 输出:
对应每组数据,输出Tr(A^k)%9973。
- 样例输入:
22 21 00 13 999999991 2 34 5 67 8 9
- 样例输出:
22686
#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int iMod = 9973;const int MAXN = 11;struct MatrixNode{int iMatrix[MAXN][MAXN];};MatrixNode iPer, iCell;void Inite(int n){int i, j;for (i = 0; i < n; ++i){for(j = 0; j < n; ++j){scanf("%d", &iCell.iMatrix[i][j]);iPer.iMatrix[i][j] = (i==j);}}}MatrixNode Multi_Matrix(MatrixNode a, MatrixNode b, int n){MatrixNode c;int i, j, k;for (i = 0; i < n; ++i){for (j = 0; j < n; ++j){c.iMatrix[i][j] = 0;for (k = 0; k < n; ++k){c.iMatrix[i][j] = (c.iMatrix[i][j] + a.iMatrix[i][k]*b.iMatrix[k][j])%iMod;}}}return c;}MatrixNode Quick_Mod_Matrix(int k, int n){MatrixNode c, iCur;c = iPer;iCur = iCell;while (k){if(k&1){c = Multi_Matrix(c, iCur, n);k--;}iCur = Multi_Matrix(iCur, iCur, n);k >>= 1;}return c;}int main(){int T, n, k, i, iSum;scanf("%d", &T);MatrixNode iRes;while (T--){scanf("%d %d", &n, &k);Inite(n);iRes = iCell;iRes = Quick_Mod_Matrix(k, n);iSum = 0;for (i = 0; i < n; ++i)iSum = (iSum + iRes.iMatrix[i][i])%iMod;printf("%d\n", iSum);}return 0;}
0 0
- 九度 题目1443:Tr A
- 九度oj 题目1443:Tr A
- 九度OJ题目1443:Tr A
- 九度 题目1443:Tr A
- 九度 题目1443:Tr A
- 题目1443:Tr A
- 题目1443:Tr A
- 【学习笔记】〖九度OJ〗题目1443:Tr A
- 九度OJ-1443:Tr A
- 59-题目1443:Tr A
- 九度oj1443 Tr(A^k)
- 题目59:Tr A
- a+b (九度oj 题目60)
- 九度OJ 题目1010:A + B
- 【九度】题目1000:计算a+b
- 【九度】题目1003:A+B
- 九度OJ 题目1003:A+B
- 九度OJ题目1003:A+B
- 百度眼中的原创
- 天天用的开发环境,你真的了解吗?
- VB.Net 三层登录实例
- 算法导论-栈和队列的简单实现
- DBGrid上设置选择项
- 九度 题目1443:Tr A
- apache kafka系列之Controller设计机制和状态变化
- 内存拷贝函数编写
- jsp在线投票系统实验
- 黑马程序员-----------java 十进制转换成其他任意进制
- ssh 无密码验证 及 ssh localhost 仍然需要密码的解决方案
- jquery cookie(备忘)
- mysql char varchar text的区别
- 《Head First 设计模式》学习笔记——迭代器模式 + 组合模式