hdu 1575 矩阵大水题
来源:互联网 发布:网络无法连接有个叹号 编辑:程序博客网 时间:2024/05/01 15:13
Tr A
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1453 Accepted Submission(s): 1086
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<stdio.h>struct Mat{ int martix[10][10];};int n,mod=9973;Mat res,A,temp,q;Mat multi(Mat a,Mat b){Mat c;int i,j,k;for(i=0;i<n;i++)for(j=0;j<n;j++){c.martix[i][j]=0;for(k=0;k<n;k++){c.martix[i][j]+=(a.martix[i][k]*b.martix[k][j])%9973;c.martix[i][j]%=9973;}}return c;}Mat er_fun(Mat a,int k){ Mat tp=a; a=res; while(k) { if(k&1) a=multi(a,tp); tp=multi(tp,tp); k=k>>1; } return a;}int main(){ int cas,k,i,j; scanf("%d",&cas); for(i=0;i<10;i++) for(j=0;j<10;j++) if(i==j) res.martix[i][j]=1; else res.martix[i][j]=0; while(cas--) { scanf("%d %d",&n,&k); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&A.martix[i][j]);temp=er_fun(A,k);int ans=0;for(i=0;i<n;i++){ ans+=temp.martix[i][i]; ans%=mod;}printf("%d\n",ans); } return 0;}
- hdu 1575 矩阵大水题
- hdu 4247 大水题
- hdu 4206 大水题
- HDU 1028 DP 大水题
- hdu 2550 百步穿杨(大水题)
- hdu 2030 统计汉字个数 大水题
- HDU 1004 字符串处理 大水题啊
- hdu 4554 杭电超级大水题
- hdu 4548 美素数 超级大水题
- hdu 2161 Primes 筛法求素数 大水题
- hdu 1548 一维bfs大水题
- HDU 5365 Run(大水题)
- HDU 2547 无剑无我 (大水题)
- HDU 2008 数值统计(大水题)
- HDU-5504(逻辑if-else大水题)
- HDU 2564 词组缩写 标准大水题
- hdu 2094 产生冠军 模拟 大水题
- 大水题!!!
- 深入体验JavaWeb开发内幕——进一步体味传统自定义标签的接口与实现类
- boost 编译和使用
- 程序员面试题精选100题(17)-把字符串转换成整数
- xaml学习(一)silverlight开发环境的搭建
- 【数据中国大讲坛】20121118讲座录音合集(二)17-22
- hdu 1575 矩阵大水题
- 1.2.5 如何通过串口与PC互相传送文件
- Android TextView文字太多显示的最后一行被盖住一半的解决办法
- linux 内核分析之list_head
- Orange's动手写操作系统-----------第二篇:保护模式Protect Mode (学习笔记2)
- 计算机浮点数 float 表示
- 一幅对联求横批
- ubuntu下wireshark的安装
- 蛇形矩阵