顺手写了下矩阵类模板

  利用到矩阵乘法的交换律 (A*B)^n == A * (B*A)^n-1 *B

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <utility>
#include <stack>
#include <queue>
#include <map>
#include <deque>
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
#define INF 0x3f3f3f3f
#define MOD 6 using namespace std; int n,m; struct Matrix{
int n,m;
vector< vector<int> >a;
Matrix(){};
Matrix(const Matrix & T) : n(T.n),m(T.m)
{
a.resize(n);
for(int i=; i<n; i++)
{
a[i].resize(m);
for(int j=; j<m; j++)
a[i][j]=T.a[i][j];
}
}
Matrix(int N, int M)
{
n=N;
m=M;
a.resize(N);
for(int i=; i<N; i++)
a[i].resize(M);
}
Matrix & operator=(const Matrix &T)
{
n=T.n;
m=T.m;
a.resize(n);
for(int i=; i<n; i++)
{
a[i].resize(m);
for(int j=; j<m; j++)
a[i][j]=T.a[i][j];
}
return *this;
}
Matrix operator+(const Matrix &T) const
{
Matrix tmp(n,m);
for(int i=; i<n; i++)
for(int j=; j<m; j++)
tmp.a[i][j]=a[i][j]+T.a[i][j];
return tmp;
}
Matrix operator*(const Matrix &T) const
{
Matrix tmp(n,T.m);
for(int i=; i<n; i++)
for(int j=; j<T.m; j++)
for(int k=; k<m; k++)
tmp.a[i][j]=(tmp.a[i][j]+a[i][k]*T.a[k][j])%MOD;
return tmp;
}
void input(int N, int M)
{
n=N;
m=M;
a.resize(n);
for(int i=; i<n; i++)
{
a[i].resize(m);
for(int j=; j<m; j++)
scanf("%d",&a[i][j]);
}
}
void output()
{
for(int i=; i<n; i++)
{
for(int j=; j<m; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
Matrix pow_m(int N)//矩阵满足n=m
{
Matrix ret(n,n),tmp(*this);
for(int i=; i<n; i++)
ret.a[i][i]=;
while(N)
{
if(N&) ret=ret*tmp;
tmp=tmp*tmp;
N>>=;
}
return ret;
}
}; int main()
{
while(scanf("%d%d",&n,&m)!=EOF && n && m)
{
Matrix a,b,c,d;
a.input(n,m);
b.input(m,n);
c=b*a;
d=c.pow_m(n*n-);
d=a*d*b;
int ans=;
for(int i=; i<d.n; i++)
for(int j=; j<d.m; j++)
ans=ans+d.a[i][j];
printf("%d\n",ans);
}
return ;
}

HDU 4965 矩阵快速幂的更多相关文章

  1. hdu 4965 矩阵快速幂 矩阵相乘性质

    Fast Matrix Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Jav ...

  2. HDU 2855 (矩阵快速幂)

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

  3. HDU 4471 矩阵快速幂 Homework

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

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

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

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

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

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

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

  7. HDU 3802 矩阵快速幂 化简递推式子 加一点点二次剩余知识

    求$G(a,b,n,p) = (a^{\frac {p-1}{2}}+1)(b^{\frac{p-1}{2}}+1)[(\sqrt{a} + \sqrt{b})^{2F_n} + (\sqrt{a} ...

  8. How many ways?? HDU - 2157 矩阵快速幂

    题目描述 春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的 ...

  9. HDU 5950 矩阵快速幂

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

随机推荐

  1. LoadRunner 学习笔记(1)性能测试常见术语

    并发用户数据:与服务器进行交互的在线用户数量 请求响应时间:从Client端发出请求到得到响应的整个时间 一般包括网络响应时间 + server的响应时间 事务请求响应时间:完成这个事务所用的时间 这 ...

  2. Interview-Increasing Sequence with Length 3.

    Given an array, determine whether there are three elements A[i],A[j],A[k], such that A[i]<A[j]< ...

  3. android中实现Parcelable序列化步骤

    import java.io.Serializable; import java.text.DecimalFormat; import android.os.Parcel; import androi ...

  4. DX SetFVF

    自由顶点格式(flexible vertex format,FVF) http://www.cnblogs.com/xmzyl/articles/1604096.html if( SUCCEEDED( ...

  5. HDU1251 统计难题 Trie树

    题目很水,但毕竟是自己第一道的Trie,所以还是发一下吧.Trie的更多的应用慢慢学,AC自动机什么的也慢慢学.... #include<iostream> #include<cst ...

  6. UVA 11174 Stand in a Line (组合+除法的求模)

    题意:村子里有n个人,给出父亲和儿子的关系,有多少种方式可以把他们排成一列,使得没人会排在他父亲的前面 思路:设f[i]表示以i为根的子树有f[i]种排法,节点i的各个子树的根节点,即它的儿子为c1, ...

  7. 【转】Cygwin访问Windows驱动器

    From:http://www.cygwin.cn/site/info/show.php?IID=1000 由于自己的项目需要使用Linux内核,所以自己在windows下安装了一个Linux虚拟机! ...

  8. [转]Openstack Havana Dashboard测试和使用

    转贴一篇陈沙克老师的文章:http://www.chenshake.com/openstack-havana-dashboard-to-test-and-use/ Openstack Havana D ...

  9. [hackerrank]Closest Number

    https://www.hackerrank.com/contests/w5/challenges/closest-number 简单题. #include <iostream> #inc ...

  10. 2014-9-17二班----6 web project

    部署  加载 到 Tomcat 6.0 服务器上 web.xml           <welcome>index.jsp </welcome>   <welcome&g ...