UVa 10870 Recurrences (矩阵快速幂)
来源:互联网 发布:千月软件序列号 编辑:程序博客网 时间:2024/06/05 19:31
UVa 10870 Recurrences
题目大意:
给出
(
题目分析:
若选择递推计算的话,时间复杂度为
现在已知
那么现在只需要算出
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const int maxn=20;int d,n,MOD;struct Matrix {//定义结构体Matrix,重载乘法运算符,便于计算 int n,m; ll M[maxn][maxn]; Matrix(){memset(M,0,sizeof(M));n=m=0;} Matrix(int n,int m):n(n),m(m){memset(M,0,sizeof(M));} Matrix operator * (const Matrix& rhs) const { Matrix ret(n,rhs.m); for(int i=1;i<=n;i++) for(int j=1;j<=rhs.m;j++) { for(int k=1;k<=m;k++) ret.M[i][j]+=M[i][k]*rhs.M[k][j]; ret.M[i][j]%=MOD; } return ret; } Matrix operator *= (const Matrix& rhs) { return *this=*this*rhs; }};Matrix qpow(Matrix x,int y)//矩阵快速幂 { Matrix ret(x.n,x.m); for(int i=1;i<=ret.n;i++) ret.M[i][i]=1; while(y>0) { if(y&1) ret*=x; x*=x;y>>=1; } return ret;}int main(){ while(scanf("%d%d%d",&d,&n,&MOD)==3&&d) { Matrix A(d,d),F(d,1); for(int i=1;i<d;i++) A.M[i][i+1]=1; for(int i=d;i>=1;i--) scanf("%lld",&A.M[d][i]),A.M[d][i]%=MOD;//注意系数a是倒着存放的 for(int i=1;i<=d;i++) scanf("%lld",&F.M[i][1]),F.M[i][1]%=MOD; A=qpow(A,n-d); F=A*F; printf("%lld\n",F.M[d][1]); } return 0;}
0 0
- UVA 10870 Recurrences 矩阵快速幂
- UVa 10870 Recurrences / 矩阵快速幂
- UVA 10870 - Recurrences(矩阵快速幂)
- uva 10870 - Recurrences(矩阵快速幂)
- UVA - 10870 Recurrences (矩阵快速幂)
- UVA - 10870 Recurrences 矩阵快速幂
- uva 10870 Recurrences(矩阵快速幂)
- UVA - 10870 Recurrences (矩阵快速幂)
- UVa - 10870 - Recurrences ( 矩阵快速幂 )
- UVa 10870 Recurrences (矩阵快速幂)
- UVA 10870 Recurrences(矩阵快速幂)
- 【矩阵快速幂】Recurrences UVA
- UVa 10870 - Recurrences (矩阵构造 矩阵快速幂)
- Uva 10870 Recurrences 解题报告(矩阵快速幂)
- uva 10870 Recurrences(数学:矩阵快速幂)
- UVA 10870 Recurrences(构造矩阵和快速幂)
- UVA 10870 Recurrences 矩阵连乘 快速幂取模
- UVA 10870 Recurrences 矩阵乘法
- Log4j ConversionPattern参数的格式含义
- JavaScript的Prototype原型链详解
- 协同过滤user-based CF算法与item-based CF算法对比
- JavaEE – JPA(5):ORM的核心注解 – 基础类型以及嵌套类型
- google注解@SerializedName的使用说明
- UVa 10870 Recurrences (矩阵快速幂)
- Android OpenCV 人脸识别 Opencv2.4.11
- hibernate集合映射inverse和cascade详解
- 第2章 在HTML 中使用JavaScript
- sqlserver 导入excel
- IIS中配置PHP运行环境
- Chrome调试技巧。转载大神的
- PHP完整实战23种设计模式
- scnaf先后输入同一个字符数组是否会有影响