矩阵乘法模板:

 #define N 801
#include<iostream>
using namespace std;
#include<cstdio>
int a[N][N],b[N][N],c[N][N];
int n,m,p;
int read()
{
int ans=,ff=;char s;
s=getchar();
while(s<''||s>'')
{
if(s=='-') ff=-;
s=getchar();
}
while(s>=''&&s<='')
{
ans=ans*+s-'';
s=getchar();
}
return ans*ff;
}
int main()
{
n=read();
p=read();
m=read();
for(int i=;i<=n;++i)
for(int j=;j<=p;++j)
a[i][j]=read();
for(int i=;i<=p;++i)
for(int j=;j<=m;++j)
b[i][j]=read();
for(int i=;i<=n;++i)
{
for(int j=;j<=m;++j)
{
c[i][j]=;
for(int k=;k<=p;++k)
c[i][j]+=a[i][k]*b[k][j];
printf("%d ",c[i][j]);
}
printf("\n");
}
return ;
}

cojs 1717. 数学序列

★   输入文件:number1.in   输出文件:number1.out   简单对比
时间限制:1 s   内存限制:128 MB

【题目描述】

已知一个函数f :

f (1) =1

f (2) =1

f (n) = (a × f (n −1) +b × f (n − 2))mod 7

现给出a,b,n ,要你求出 f (n) .

【输入格式】

每一行输入一组数据分别为A,B,N(1<=A,B<=1000,1<=N<=200000000)

【输出格式】

每一行输出结果 f (n) .

【样例输入】

1 1 3

1 2 10

【样例输出】

2
5
 #include<iostream>
using namespace std;
#include<cstdio>
#include<cstring>
#define N 5
#define mod 7
struct Jz{
int line,cal;
int jz[N][N];
}a,ans;
int A,B;
void pre_chuli()
{
a.cal=;a.line=;
a.jz[][]=;a.jz[][]=;
a.jz[][]=B;a.jz[][]=A;
ans.cal=;ans.line=;
ans.jz[][]=;
ans.jz[][]=;
}
Jz matrax(Jz x,Jz y)
{
Jz sum;
sum.line=x.line;sum.cal=y.cal;
memset(sum.jz,,sizeof(sum.jz));
/* for(int i=1;i<=sum.line;++i)
{
for(int j=1;j<=sum.cal;++j)
printf("%d ",sum.jz[i][j]);
printf("\n");
}*/
for(int i=;i<=sum.line;++i)
for(int j=;j<=sum.cal;++j)
{
for(int k=;k<=x.cal;++k)
{
sum.jz[i][j]=(sum.jz[i][j]+x.jz[i][k]*y.jz[k][j])%mod;
}
}
return sum;
}
int Fast_matrax(int n)
{
if(n==) return ans.jz[][];
n-=;/*真正的乘法次数是n-2*/
while(n)
{
if(n&)
{
ans=matrax(a,ans);
}
n>>=;
a=matrax(a,a);
}
return ans.jz[][]%mod;
}
int main()
{
freopen("number1.in","r",stdin);
freopen("number1.out","w",stdout);
int n;
while(scanf("%d%d%d",&A,&B,&n)==)
{
memset(a.jz,,sizeof(a.jz));
a.cal=a.line=;
memset(ans.jz,,sizeof(ans.jz));
ans.cal=ans.line=;
pre_chuli();
printf("%d\n",Fast_matrax(n));
}
fclose(stdin);fclose(stdout);
return ;
}

矩阵乘法快速幂 cojs 1717. 数学序列的更多相关文章

  1. Qbxt 模拟赛 Day4 T2 gcd(矩阵乘法快速幂)

    /* 矩阵乘法+快速幂. 一开始迷之题意.. 这个gcd有个规律. a b b c=a*x+b(x为常数). 然后要使b+c最小的话. 那x就等于1咯. 那么问题转化为求 a b b a+b 就是斐波 ...

  2. 洛谷 P4910 帕秋莉的手环 矩阵乘法+快速幂详解

    矩阵快速幂解法: 这是一个类似斐波那契数列的矩乘快速幂,所以推荐大家先做一下下列题目:(会了,差不多就是多倍经验题了) 注:如果你不会矩阵乘法,可以了解一下P3390的题解 P1939 [模板]矩阵加 ...

  3. BZOJ-2326 数学作业 矩阵乘法快速幂+快速乘

    2326: [HNOI2011]数学作业 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1564 Solved: 910 [Submit][Statu ...

  4. 【BZOJ-1009】GT考试 KMP+DP+矩阵乘法+快速幂

    1009: [HNOI2008]GT考试 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2745  Solved: 1694[Submit][Statu ...

  5. 矩阵乘法快速幂 codevs 1732 Fibonacci数列 2

    1732 Fibonacci数列 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 在“ ...

  6. BZOJ-2875 随机数生成器 矩阵乘法快速幂+快速乘

    题目没给全,吃X了... 2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1479 Solved: 829 ...

  7. 【BZOJ 2323】 2323: [ZJOI2011]细胞 (DP+矩阵乘法+快速幂*)

    2323: [ZJOI2011]细胞 Description 2222年,人类在银河系外的某颗星球上发现了生命,并且携带了一个细胞回到了地球.经过反复研究,人类已经完全掌握了这类细胞的发展规律: 这种 ...

  8. ACM学习历程—HDU5667 Sequence(数论 && 矩阵乘法 && 快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=5667 这题的关键是处理指数,因为最后结果是a^t这种的,主要是如何计算t. 发现t是一个递推式,t(n) = c ...

  9. codevs1281 矩阵乘法 快速幂 !!!手写乘法取模!!! 练习struct的构造函数和成员函数

    对于这道题目以及我的快速幂以及我的一节半晚自习我表示无力吐槽,, 首先矩阵乘法和快速幂没必要太多说吧,,嗯没必要,,我相信没必要,,实在做不出来写两个矩阵手推一下也就能理解矩阵的顺序了,要格外注意一些 ...

随机推荐

  1. JDK1.8新特性

    1.Lambda                                                            Lambda的语法目前仅对于只有一个抽象方法的接口. 在Lamb ...

  2. 浅谈iOS多线程

    浅谈iOS多线程 首先,先看看进程和线程的概念. 图1.1 这一块不难理解,重点点下他们的几个重要区别: 1,地址空间和资源:进程可以申请和拥有系统资源,线程不行.资源进程间相互独立,同一进程的各线程 ...

  3. ubuntu的su初始密码设置

    Ubuntu刚安装后,不能在terminal中运行su命令,因为root没有默认密码,需要手动设定. 以安装ubuntu时输入的用户名登陆,该用户在admin组中,有权限给root设定密码. 给roo ...

  4. 虚拟机NAT网络设置

    1. 虚拟机设置 2. 本地网络设置 3. 本地虚拟网卡设置 4. 安装虚拟机,设置网络为NAT方式即可访问外网.

  5. FPM定制RPM包

    安装FPM FPM是ruby写的打包工具,ruby版本要大于1.8.5 #安装ruby环境和gem包管理器 [root@test88 ~]# yum install -y ruby rubygems ...

  6. final修饰的变量是引用不能改变还是引用的对象不能改变

    我们都知道final修饰变量时 会变为常量,但是使 用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 下面让我们来看这段代码: /** * 验证final修饰的变量是引用不能变, ...

  7. 苹果receipt样例

    使用[[NSBundle mainBundle] appStoreReceiptURL]方式获取receipt (iOS7及以上获取receipt的方法) 普通付费 "latest_rece ...

  8. 表格中上移下移置顶的js操作

    <script> $(function(){  //上移  var $up = $(".up")  $up.click(function() {   var $tr = ...

  9. 看看PHP迭代器的内部执行过程

    class myIterator implements Iterator { private $position = 0; private $array = array( "first_el ...

  10. 我所遇到的C++连接问题汇总

    http://blog.sina.com.cn/s/blog_7caa399301017k1e.html 1:无法打开kernel32.lib 针对不同版本的VS,lib库所在的地方都不一样,所以首先 ...