矩阵乘法模板:

 #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. 阿里分布式开源框架DUBBO 入门+ 进阶+ 项目实战视频教程

    史诗级Java/JavaWeb学习资源免费分享 欢迎关注我的微信公众号:"Java面试通关手册"(坚持原创,分享各种Java学习资源,面试题,优质文章,以及企业级Java实战项目回 ...

  2. oracle imp dmp命令

    vi par.txt userid=system/oracle tables=(user.table,...) query="where org_no like 32%" file ...

  3. 使用qt写的简单的图片浏览器

    功能特别简单,支持png,jpg,bmp,gif文件,支持自适应窗口大小,支持放大缩小,旋转功能还有点问题,支持上下按键选择图片 因为初学qt,所以很多东西都不太会,而且c++学的不是太好,没有怎么使 ...

  4. 2. 数据库文件配置与简单操作 Model / M()

    官方文档说明位置: Thinkphp/Conf/convention.php 内容说明如下: 'DB_TYPE' => '', // 数据库类型 'DB_HOST' => '', // 服 ...

  5. python第三方库之numpy基础

    前言 numpy是python的科学计算模块,底层实现用c代码,运算效率很高.numpy的核心是矩阵narray运算. narray介绍 矩阵拥有的属性 ndim属性:维度个数 shape属性:维度大 ...

  6. mac 上使用octave的plot错误的解决办法

    在mac10.10上使用octave的时候,键入 plot(x, y)的时候会出现如下错误: ^ line : unknown or ambiguous terminal type; type jus ...

  7. Linux删除除了今天以外的文件

    [背景] 开发到日志记录功能时,每天都会产生当天的一个日志,久而久之就会产生累积,想要查看的时候,tab键无法自动补全,还要自己额外输入. 比较麻烦. [命令] 经过查找和实验,找到了以下的方法: 1 ...

  8. hosts,命令行前面的显示

    1,/etc/hosts,主机名ip配置文件. # Do not remove the following line, or various programs # that require netwo ...

  9. Gitlab部署及汉化操作

    一.简介 GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. GitLab拥有与Github类似的功能 ...

  10. interesting Integers(数学暴力||数论扩展欧几里得)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwwAAAHwCAIAAACE0n9nAAAgAElEQVR4nOydfUBT1f/Hbw9202m0r8