HDU 1757 A Simple Math Problem (矩阵+快速幂)
来源:互联网 发布:烟台网络党校 编辑:程序博客网 时间:2024/04/29 21:02
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1757
题意:已知当n<10时,f(n)=n,当n≥10时f(n)=a0*f(n-1)+a2*f(n-2)+....+a9*f(n-10),告诉你a0~a9,和n,mod,求f(n)%mod
分析:矩阵快速幂.....和nyoj 301题递推求值差不多,构造矩阵即可。http://blog.csdn.net/w20810/article/details/43835393
代码:
#include <iostream>#include <cstdio>using namespace std;typedef long long LL;int N,MOD;struct Matrax{LL mat[10][10];}U,F;Matrax multi(Matrax a,Matrax b){Matrax ans;int i,j,k;for(i=0;i<10;i++)for(j=0;j<10;j++){ans.mat[i][j]=0;for(k=0;k<10;k++)ans.mat[i][j]+=(a.mat[i][k]*b.mat[k][j]);ans.mat[i][j]%=MOD;}return ans;}Matrax matrax_pow(int n){Matrax ans=U,p=F;while(n){if(n&1)ans=multi(ans,p);n>>=1;p=multi(p,p);}return ans;}void Init(){for(int i=0;i<10;i++)for(int j=0;j<10;j++)if(i==j)U.mat[i][j]=1LL;elseU.mat[i][j]=0LL;for(int i=1;i<10;i++)F.mat[i-1][i]=1LL;}int main(){Init();int i,j;LL x;while(scanf("%d%d",&N,&MOD)!=EOF){for(i=0;i<10;i++){scanf("%lld",&F.mat[i][0]);F.mat[i][0]%=MOD;}if(N<10){printf("%d\n",N%MOD);continue;}N-=9;LL ans=0;Matrax temp=matrax_pow(N);for(i=9;i>=0;i--)ans+=(i*temp.mat[9-i][0])%MOD;printf("%lld\n",LL(ans%MOD));}return 0;}
0 0
- hdu - 1757 - A Simple Math Problem(矩阵快速幂)
- hdu 1757 A Simple Math Problem(矩阵快速幂)
- hdu 1757 A Simple Math Problem (矩阵快速幂)
- [HDU 1757] A Simple Math Problem (矩阵快速幂)
- HDU 1757-A Simple Math Problem(矩阵快速幂)
- hdu 1757 A Simple Math Problem(矩阵快速幂)
- HDU 1757 A Simple Math Problem (矩阵快速幂)
- HDU 1757 A Simple Math Problem(矩阵快速幂)
- hdu 1757 A Simple Math Problem(矩阵快速幂)
- HDU 1757 A Simple Math Problem(矩阵快速幂)
- HDU 1757 A Simple Math Problem(矩阵快速幂)
- HDU 1757 A Simple Math Problem (矩阵+快速幂)
- HDU 1757 A Simple Math Problem (矩阵快速幂)
- HDU 1757 A Simple Math Problem (矩阵快速幂)
- HDU 1757 A Simple Math Problem (矩阵快速幂)
- HDU 1757 A Simple Math Problem(矩阵快速幂)
- [HDU 1757] A Simple Math Problem (矩阵快速幂)
- HDU 1757-A Simple Math Problem(矩阵快速幂)
- 【Uni2D】GenericValueEntry、MultiValueDictionary
- 442 - Matrix Chain Multiplication
- 506 - System Dependencies
- 514 - Rails
- 完整java开发中JDBC连接数据库代码和步骤
- HDU 1757 A Simple Math Problem (矩阵+快速幂)
- 548 - Tree
- 572 - Oil Deposits
- 679 - Dropping Balls
- 699 - The Falling Leaves
- [vb6.0]一个自用html标签属性存取数据的类
- 816 - Abbott's Revenge
- 839 - Not so Mobile
- 1103 - Ancient Messages