题目链接:51nod 1113 矩阵快速幂

模板题,学习下。

 #include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = ;
const int mod = 1e9+;
int n, m;
struct Mat{//矩阵
ll mat[N][N];
};
Mat operator * (Mat a, Mat b){//一次矩阵乘法
Mat c;
memset(c.mat, , sizeof(c.mat));
int i, j, k;
for(k = ; k <= n; ++k){
for(i = ; i <= n; ++i){
if(a.mat[i][k] <= ) continue;
for(j = ; j <= n; ++j){
if(b.mat[k][j] <= ) continue;
c.mat[i][j] += a.mat[i][k] * b.mat[k][j];
c.mat[i][j] %= mod;
}
}
}
return c;
}
Mat operator ^ (Mat a, int k){//矩阵快速幂,a^k
Mat c;
int i, j;
for(i = ; i <= n; ++i)
for(j = ; j <= n; ++j)
c.mat[i][j] = (i == j);//初始化为单位矩阵
while(k){
if(k & )
c = c * a;
a = a * a;
k >>= ;
}
return c;
}
int main(){
scanf("%d%d", &n, &m);
int i, j;
Mat a;
for(i = ; i <= n; ++i)
for(j = ; j <= n; ++j)
scanf("%lld", &a.mat[i][j]);
Mat c = a ^ m;
for(i = ; i <= n; ++i){
for(j = ; j < n; ++j)
printf("%lld ", c.mat[i][j]);
printf("%lld\n", c.mat[i][n]);
}
return ;
}

51nod 1113 矩阵快速幂的更多相关文章

  1. 51nod 1113 矩阵快速幂( 矩阵快速幂经典模板 )

    1113 矩阵快速幂 链接:传送门 思路:经典矩阵快速幂,模板题,经典矩阵快速幂模板. /******************************************************* ...

  2. 51nod 1126 矩阵快速幂 水

    有一个序列是这样定义的:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. 给出A,B和N,求f(n)的值. Input 输 ...

  3. 51Nod——T 1113 矩阵快速幂

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1113 基准时间限制:3 秒 空间限制:131072 KB 分值: 40 ...

  4. NOD 1113矩阵快速幂

    基准时间限制:3 秒 空间限制:131072 KB 分值: 40    给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大,只需要输出每个元素Mod (10^ ...

  5. 51nod 矩阵快速幂(模板题)

    1113 矩阵快速幂  基准时间限制:3 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大 ...

  6. 51nod 算法马拉松18 B 非010串 矩阵快速幂

    非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串. 求长度为n的非010串的个数.(对1e9+7取模) ...

  7. 51nod 1197 字符串的数量 V2(矩阵快速幂+数论?)

    接上一篇,那个递推式显然可以用矩阵快速幂优化...自己随便YY了下就出来了,学了一下怎么用LaTeX画公式,LaTeX真是个好东西!嘿嘿嘿 如上图.(刚画错了一发...已更新 然后就可以过V2了 or ...

  8. 51Nod 1126 求递推序列的第N项(矩阵快速幂)

    #include <iostream> #include <algorithm> #include <cmath> #define MOD 7 #define N ...

  9. 51nod 1122 机器人走方格 V4 【矩阵快速幂】

    首先建立矩阵,给每个格子编号,然后在4*4的格子中把能一步走到的格子置为1,然后乘n次即可,这里要用到矩阵快速幂 #include<iostream> #include<cstdio ...

随机推荐

  1. mac_snailSVN

    作者:潘捷链接:https://www.zhihu.com/question/19705164/answer/119484169来源:知乎著作权归作者所有,转载请联系作者获得授权. Mac下之前也有类 ...

  2. H5标签--“data自定义数据”

    HTML代码部分: <div id="div1" data-zg="中国人" data-zgr="我们是祖国的儿女,我爱祖国"> ...

  3. Evacuation Plan-POJ2175最小费用消圈算法

    Time Limit: 1000MS Memory Limit: 65536K Special Judge Description The City has a number of municipal ...

  4. 《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(三)

    http://www.cnblogs.com/batteryhp/p/5046433.html 5.示例:usda食品数据库 下面是一个具体的例子,书中最重要的就是例子. #-*- encoding: ...

  5. apache2.4配置访问日志分割并过滤图片CSS等无用内容

    相关信息 1.apache日志有访问日志和错误日志,错误日志根据日志级别来输出错误信息,而访问日志根据定义的日志格式来记录访问动作 2.访问日志格式在httpd.conf文件里面定义,在虚拟主机里面引 ...

  6. EXCEL如何提取文字中包含的数字?

    方法1:=IF(ISERROR(FIND("-",A1)),"","-")&MID(SUM(MID(101&A1,2+LAR ...

  7. 荒废了很久的java以及微信公众平台今天拿起来看了看:这里有很好的教程

    我的微信公众号刚刚起步: ,感兴趣可以关注一下. 关于java开发微信公众号有一个很好的教程博客:推荐一下:http://blog.csdn.net/lyq8479/article/details/8 ...

  8. HTLM5第一天的内容

    网页的本质就是超级文本标记语言:Hyper Text Markup Language 网页的组成:结构(HTML)  样式(CSS)  行为(JavaScript) 万维网联盟:W3C:World W ...

  9. sql 连接查询的区别 inner,left,right,full

    --table1 表 ID NAME QQ PHONE1 秦云 10102800 135000002 在路上 10378 136000003 LEO 10000 139000004 秦云 024145 ...

  10. SpringMVC和MyBatis整合

    目前主流的Web MVC框架,除了Struts这个主力 外,还有Spring MVC,主要是由于Spring MVC配置比较简单,使用起来也十分明了,非常灵活,与Spring 集成较好,对RESTfu ...