Tr A
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8046 Accepted Submission(s): 5853
每组数据的第一行有n(2 <= n <= 10)和k(2 <= k < 10^9)两个数据。接下来有n行,每行有n个数据,每个数据的范围是[0,9],表示方阵A的内容。
#include<iostream>
#include<cstring>
using namespace std;
const int mod = ;
const int maxn = ;
struct matrix{
int f[maxn][maxn];
};
int n;
int k;
matrix mul(matrix a, matrix b){
matrix c;
memset(c.f,,sizeof(c.f));
for(int i = ; i < n; i++){
for(int j = ; j < n; j++){
// if(!a.f[i][k]) continue;
for(int k = ; k < n; k++){
// if(!b.f[k][j]) continue;
c.f[i][j] = (c.f[i][j] + a.f[i][k] * b.f[k][j]) % mod;
}
}
}
return c;
}
matrix pow_mod(matrix a, int b){
matrix s;
memset(s.f,,sizeof(s.f));
for(int i = ; i < n; i++){
s.f[i][i] = ;
}
while(b){
if(b&) s = mul(s,a);
a = mul(a,a);
b = b >> ;
}
return s;
}
int main(){
int T;
scanf("%d",&T);
while(T--){
matrix e;
scanf("%d%d",&n,&k); for(int i = ; i < n; i++){
for(int j = ; j < n; j++){
cin>>e.f[i][j];
}
}
e = pow_mod(e,k);
int sum1 = ;
for(int i = ; i < n; i++){
sum1 = (sum1 + e.f[i][i]) % mod;
}
printf("%d\n",sum1);
}
return ;
}
(矩阵快速幂)HDU1575 Tr A的更多相关文章
-
Tr A(矩阵快速幂)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
-
矩阵快速幂(入门) 学习笔记hdu1005, hdu1575, hdu1757
矩阵快速幂是基于普通的快速幂的一种扩展,如果不知道的快速幂的请参见http://www.cnblogs.com/Howe-Young/p/4097277.html.二进制这个东西太神奇了,好多优秀的算 ...
-
HDU.1575 Tr A ( 矩阵快速幂)
HDU.1575 Tr A ( 矩阵快速幂) 点我挑战题目 题意分析 直接求矩阵A^K的结果,然后计算正对角线,即左上到右下对角线的和,结果模9973后输出即可. 由于此题矩阵直接给出的,题目比较裸. ...
-
HDU 1575 Tr A 【矩阵经典2 矩阵快速幂入门】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=1575 Tr A Time Limit: 1000/1000 MS (Java/Others) Me ...
-
HDU 1575 Tr A( 简单矩阵快速幂 )
链接:传送门 思路:简单矩阵快速幂,算完 A^k 后再求一遍主对角线上的和取个模 /********************************************************** ...
-
矩阵快速幂 hud 1575 Tr A 模板 *
Tr A Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
-
hdu 1575 Tr A(矩阵快速幂)
今天做的第二道矩阵快速幂题,因为是初次接触,各种奇葩错误整整调试了一下午.废话不说,入正题.该题应该属于矩阵快速幂的裸题了吧,知道快速幂原理(二进制迭代法,非递归版)后,剩下的只是处理矩阵乘法的功夫了 ...
-
hdu 1575 Tr A(矩阵快速幂,简单)
题目 和 LightOj 1096 - nth Term 类似的线构造一个符合题意的矩阵乘法模版,然后套快速幂的模版,具体的构造矩阵我就不作图了,看着代码也能理解吧 #include<stdi ...
-
hdoj1575 Tr A(矩阵快速幂)
简单的矩阵快速幂.最后求矩阵的秩. #include<iostream> #include<cstring> using namespace std; ; int n,k; s ...
随机推荐
-
shell脚本重新挂载出问题的卷
#!/bin/bash#卷的全路径示例#pathexample =mount -t cetusfs 127.0.0.1:/cinderv/var/lib/cinder/volumes/0f6a20f4 ...
-
gdb 定位 oops call trace
[ 1.454380] BUG: unable to handle kernel NULL pointer dereference at 00000000000005d0[ 1.47402 ...
-
Linux档案与目录的管理
本篇随笔中,主要介绍在Linux环境下,与档案和目录的管理相关的一些命令使用,具体包括如下几个方面: 目录的相关操作:cd,pwd,mkdir,rmdir(rm) 档案与目录的查视:ls 复制.删除与 ...
-
如何解决VS启动越来越慢
VS2013 用久后,现在启动和打开项目变得很慢 解决方案: A.清理缓存 VS2010清理缓存:启用vs2010命令行工具:在vs2010命令提示符下,执行devenv.exe /resetuser ...
-
拦截器getmodel方法什么时候被调用(没搞懂有什么鸟用,自己搭的项目中用到了这个)
拦截器是Struts2最强大的特性之一,它是一种可以让用户在Action执行之前和Result执行之后进行一些功能处理的机制.Struts2 的预定义拦截器 modelDriven 如果action实 ...
-
Intent的概念及应用(二)
------siwuxie095 1.Intent过滤器 intent-filter 相关选项 如果多个Activity拥有同样的action,在启动时这个action时的情况: 首先在LearnIn ...
-
maya_关于脚本编辑器导入python模块
import sys for p in sys.path: print p rigDir = 'C:\Users\lenovo\Documents\maya\scripts\python\rigLib ...
-
pdo连接的时候设置字符编码是这样的
$pdo = new \PDO(..,..,..) $pdo->query('SET NAMES utf8mb4'); $pdo->exex('sql....');
-
CentOS6.x安装RabbitMQ
一.安装依赖文件 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ ...
-
AJAX的基本操作
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和 ...