【HDU-oj】-1575-Tr A(矩阵)
来源:互联网 发布:mac安装windows虚拟机 编辑:程序博客网 时间:2024/06/07 09:08
Tr A
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4829 Accepted Submission(s): 3626
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
#include <cstdio>#include <stack>#include <queue>#include <cmath>#include <vector>#include <cstring>#include <algorithm>using namespace std;#define CLR(a,b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define LL long longconst int MOD=9973;struct Matrix{int h,w;int m[12][12];};Matrix Matrix_multiply(Matrix a,Matrix b){Matrix c;c.h=a.h;c.w=b.w;CLR(c.m,0);for(int i=1;i<=a.h;i++){for(int j=1;j<=a.w;j++){if(a.m[i][i]==0)continue;for(int k=1;k<=b.w;k++)c.m[i][k]=(c.m[i][k]+a.m[i][j]*b.m[j][k]%MOD)%MOD;}}return c;}Matrix Quick(Matrix a,int n){Matrix ans;ans.h=ans.w=a.h;CLR(ans.m,0);for(int i=1;i<=a.h;i++)ans.m[i][i]=1;while(n){if(n&1)ans=Matrix_multiply(ans,a);n>>=1;a=Matrix_multiply(a,a);}return ans;}int main(){int u;scanf("%d",&u);while(u--){int k,n;scanf("%d%d",&k,&n);Matrix pr;pr.h=pr.w=k;CLR(pr.m,0);for(int i=1;i<=k;i++){for(int j=1;j<=k;j++)scanf("%d",&pr.m[i][j]);}Matrix t;t=Quick(pr,n);LL ans=0;for(int i=1;i<=k;i++)ans+=t.m[i][i];printf("%lld\n",ans%MOD);}return 0;}
0 0
- 【HDU-oj】-1575-Tr A(矩阵)
- hdu 1575 Tr A(矩阵乘法)
- hdu 1575 Tr A(矩阵乘法)
- HDU 1575 Tr A (矩阵乘法)
- HDU 1575 Tr A (矩阵乘法)
- hdu 1575 Tr A(矩阵乘法快速求幂)
- hdu - 1575 - Tr A(矩阵快速幂)
- HDU 1575-Tr A (矩阵快速幂裸题)
- hdu 1575 Tr A(矩阵快速幂入门)
- HDU 1575 Tr A (矩阵快速幂入门)
- HDU 1575 Tr A(矩阵快速幂 水 入门)
- HDU 1575 Tr A(矩阵快速幂)
- HDU 1575 Tr A(矩阵快速幂)
- HDU 1575 Tr A(矩阵快速幂)
- HDU 1575 Tr A(矩阵快速幂)
- 【HDU】1575 - Tr A(矩阵快速幂)
- HDU 1575 Tr A(矩阵快速幂)
- HDU: 1575 Tr A(矩阵快速幂入门)
- 设置启动界面、界面间跳转、intent初步接触
- Harr特征描述子代码实现
- Ubuntu 14.04 上安装 CUDA 7.5/8.0 超详细教程
- 如何让浏览器访问最新的js、css等外部引用文件?
- 判断一个BigDecimal数值是否为零
- 【HDU-oj】-1575-Tr A(矩阵)
- Reverse Interget
- redis 集群搭建 遇到的问题 Sorry, can't connect to node 127.0.0.1:7000
- 短链接学习
- Jmeter(一)jmeter介绍和安装
- 程序中的const对象以及extern关键词的使用
- c语言---输入一个字符串,删除其中的某一个字符
- 兜转数年,老跳成了卖过软件开过店写过APP的电脑老师
- 16 flume安装、部署及案例