hdu 5015 233 Matrix 矩阵优化
2016-09-23 17:33
411 查看
题意:
一个233矩阵的第一行为0,233,2333,23333,……233……3;第一列为 0,a[1],a[2],a[3]……a[k]对于其他位置的值满足matrix[i][j]=matrix[i-1][j]+matrix[i][j-1];
给你数组a[] 问matrix
[m]的值是什么
分析:
可以知道根据所给的规矩构造一个矩阵
10 0 0 0 的m次方的第n行和 矩阵 23 相乘就是所求的
10 1 0 0 a[1]
10 1 1 0 a[2]
0 0 0 1 3
23 和 3 是添加为了构造233 2333的
ACcode:
一个233矩阵的第一行为0,233,2333,23333,……233……3;第一列为 0,a[1],a[2],a[3]……a[k]对于其他位置的值满足matrix[i][j]=matrix[i-1][j]+matrix[i][j-1];
给你数组a[] 问matrix
[m]的值是什么
分析:
可以知道根据所给的规矩构造一个矩阵
10 0 0 0 的m次方的第n行和 矩阵 23 相乘就是所求的
10 1 0 0 a[1]
10 1 1 0 a[2]
0 0 0 1 3
23 和 3 是添加为了构造233 2333的
ACcode:
#include <bits/stdc++.h> #define mod 10000007 #define ll long long using namespace std; struct Matrix{ ll mat[12][12]; }; Matrix mul(Matrix a,Matrix b,int n){ Matrix ret; for(int i=0;i<n+2;++i) for(int j=0;j<n+2;++j){ ret.mat[i][j]=0; for(int k=0;k<n+2;++k) ret.mat[i][j]=(a.mat[i][k]*b.mat[k][j]+ret.mat[i][j])%mod; } return ret; } Matrix pow(Matrix a,int n,ll m){ Matrix ret; memset(ret.mat,0,sizeof(ret.mat)); for(int i=0;i<n+2;++i)ret.mat[i][i]=1; while(m){ if(m&1)ret=mul(ret,a,n); a=mul(a,a,n); m>>=1; } return ret; } int main(){ int n; ll m,a[12]; while(cin>>n>>m){ a[0]=23;a[n+1]=3; for(int i=1;i<=n;++i)cin>>a[i]; Matrix tmp; memset(tmp.mat,0,sizeof(tmp.mat)); for(int i=0;i<n+1;++i)tmp.mat[i][0]=10; for(int i=0;i<n+2;++i)tmp.mat[i][n+1]=1; for(int i=1;i<=n;++i) for(int j=1;j<=i;++j) tmp.mat[i][j]=1; tmp=pow(tmp,n,m); ll ans=0; for(int i=0;i<n+2;++i) ans=(ans+tmp.mat [i]*a[i]+mod)%mod; cout<<ans<<'\12'; } return 0; }
相关文章推荐
- hdu 5015 233 Matrix(矩阵快速幂)
- Hdu 5015 233 Matrix[矩阵](2014 ACM/ICPC Asia Regional Xi'an Online )
- Hdu 5015 233 Matrix (矩阵乘法)
- HDU 5015 233 Matrix 矩阵快速幂
- HDU 5015 233 Matrix 矩阵快速幂
- hdu 5015 233 Matrix 线性序列构造矩阵快速幂
- hdu 5015 233 Matrix (递推 矩阵快速幂)
- hdu 5015 233 Matrix 矩阵快速幂 2014 ACM/ICPC Asia Regional Xi'an Online
- hdu 5015 233 Matrix(数学:矩阵快速幂)
- 【HDU】5015 233 Matrix 矩阵快速幂
- HDU - 5015 233 Matrix (矩阵构造)
- HDU 5015 233 Matrix(西安网络赛I题, 构造矩阵)
- HDU 5015 233 Matrix 矩阵递推
- [矩阵快速幂] hdu 5015 233 Matrix
- hdu 5015 233 Matrix 矩阵快速幂
- HDU 5015 233 Matrix --矩阵快速幂
- hdu 5015 Matrix 233 矩阵快速幂
- hdu 5015 233 Matrix(西安网络赛1009)【构造矩阵】
- hdu-5015-233 Matrix-矩阵
- hdu 5015 233 Matrix 2014 ACM/ICPC Asia Regional Xi'an Online 矩阵快速幂