#include<iostream>
#include<vector>
#include<string>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<list> using namespace std; #define maxn 15
int n, k;
struct matrix//定义一个结构体,方便传递值
{
int m[maxn][maxn];
}; /*
maxn和mod由全局定义,其中mod根据需要可以省去
*/ matrix mul(matrix a, matrix b) //矩阵求积, 矩阵乘法
{
matrix ans;
for(int i = ; i <= n; i++)
{
for(int j = ; j <= n; j++)
{
ans.m[i][j] = ;
for(int k = ; k <= n; k++)
{
ans.m[i][j] += (a.m[i][k] * b.m[k][j]) % ;
ans.m[i][j] %= ;
}
}
}
return ans;
} matrix quick_pow(matrix a, int b) //矩阵快速幂
{
matrix ans;
for(int i = ; i <= n; i++)
{
for(int j = ; j <= n; j++)
{
if(i == j)
ans.m[i][j] = ;
else
ans.m[i][j] = ;//这里要初始化为单位矩阵,类比普通快速幂这里初始化为1
}
}
while(b != )//方法与普通快速幂相同,只有乘法的实现不同
{
if(b % == )
ans = mul(a, ans);
a = mul(a, a);
b /= ;
} return ans;
} int main()
{
int T;
cin >> T;
while(T--)
{
matrix a; cin >> n >> k;
for(int i = ; i<= n; ++i)
for(int j = ; j <= n; ++j)
cin >> a.m[i][j]; matrix tmp = quick_pow(a, k);
int ans = ;
for(int i = ; i<= n; ++i)
ans += tmp.m[i][i] % ; ans %= ; // 最后这里一定要再次取余!
cout << ans << endl;
} return ;
}

Tr A HDU 1575 (矩阵快速幂)的更多相关文章

  1. HDU - 1575——矩阵快速幂问题

    HDU - 1575 题目: A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973.  Input数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n( ...

  2. hdu 1575(矩阵快速幂)

    Tr A Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. HDU 1575 矩阵快速幂裸题

    题意:中文题 我就不说了吧,... 思路:矩阵快速幂 // by SiriusRen #include <cstdio> #include <cstring> using na ...

  4. hdu 1575 矩阵快速幂模板

    #include "iostream" #include "vector" #include "cstring" using namespa ...

  5. HDU 1575 Tr A( 简单矩阵快速幂 )

    链接:传送门 思路:简单矩阵快速幂,算完 A^k 后再求一遍主对角线上的和取个模 /********************************************************** ...

  6. HDU 2855 (矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2855 题目大意:求$S(n)=\sum_{k=0}^{n}C_{n}^{k}Fibonacci(k)$ ...

  7. HDU 4471 矩阵快速幂 Homework

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4471 解题思路,矩阵快速幂····特殊点特殊处理····· 令h为计算某个数最多须知前h个数,于是写 ...

  8. hdu 1757 (矩阵快速幂) 一个简单的问题 一个简单的开始

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1757 题意不难理解,当x小于10的时候,数列f(x)=x,当x大于等于10的时候f(x) = a0 * ...

  9. 随手练——HDU 5015 矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015 看到这个限时,我就知道这题不简单~~矩阵快速幂,找递推关系 我们假设第一列为: 23 a1 a2 ...

随机推荐

  1. input 数值验证

    1.手动校验数字为整数 Number.isInteger <el-input class="radioInput" v-model.number="ruleForm ...

  2. java中自己对页面跳转问题的一些经验

    在eclipse中,如果你要在jsp页面跳转到servlet页面中,可以用action=“/根文件名/servlet文件名” 的方式跳转. 例如我创建了一个web application名字是test ...

  3. <scrapy爬虫>爬取猫眼电影top100详细信息

    1.创建scrapy项目 dos窗口输入: scrapy startproject maoyan cd maoyan 2.编写item.py文件(相当于编写模板,需要爬取的数据在这里定义) # -*- ...

  4. 使用Colaboratory的免费GPU训练神经网络

    1 Colaboratory 介绍 Colaboratory 是一个 Google 研究项目,旨在帮助传播机器学习培训和研究成果.它是一个 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并 ...

  5. ubuntu与xshell连接不起来:

  6. Luogu P2272 [ZJOI2007]最大半连通子图(Tarjan+dp)

    P2272 [ZJOI2007]最大半连通子图 题意 题目描述 一个有向图\(G=(V,E)\)称为半连通的\((Semi-Connected)\),如果满足:\(\forall u,v\in V\) ...

  7. 【心无旁骛】vue-ts-daily

    这是一个非常有意思的项目,我们先来看看效果 这个项目所用的技术也比较有意思,它的技术栈为vue2.5 + Typescript + vuex + vue-router 放下博主的项目地址吧,https ...

  8. pdftk

    功能介绍: 如果PDF是一张电子纸,Pdftk就是一个印戳涂抹器.打孔机.浆糊.显影液.和一个X光玻璃.Pdftk是一个简单的PDF万用工具,使用它,你可以:合并PDF文档分割PDF旋转PDF页面解密 ...

  9. js身份证号码验证(小程序版)

    参考知乎专栏文章https://zhuanlan.zhihu.com/p/22949023 <view class='bgw'> <form> ...... <view ...

  10. PHP declare 之 strict_types=1

    PHP中申明 declare(strict_types=1)的作用:  strict_types=1 及开启严格模式.默认是弱类型校验.具体严格模式和普通模式的区别见下面代码. code1: < ...