hdu 1757 A Simple Math Problem (矩阵快速幂)
来源:互联网 发布:手机放大镜软件 编辑:程序博客网 时间:2024/05/16 12:50
和这一题构造的矩阵的方法相同。
需要注意的是,题目中a0~a9 与矩阵相乘的顺序。
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#define N 10using namespace std;int mod;typedef long long LL;struct matrix{ LL a[10][10];}origin;int n=10,m;matrix multiply(matrix x,matrix y){ matrix temp; memset(temp.a,0,sizeof(temp.a)); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { for(int k=0;k<n;k++) { temp.a[i][j]+=x.a[i][k]*y.a[k][j]; temp.a[i][j]=(temp.a[i][j])%mod; } } } return temp;}matrix matmod(matrix A,int k){ matrix res; memset(res.a,0,sizeof res.a); for(int i=0;i<n;i++)res.a[i][i]=1; while(k) { if(k&1) res=multiply(res,A); k>>=1; A=multiply(A,A); } return res;}void print(matrix x){ for(int i=0;i<n;i++) { for(int j=0;j<n;j++) cout<<" "<<x.a[i][j]; puts(""); } printf("---------------\n");}int main(){ int k; while(scanf("%d%d",&k,&mod)!=EOF) { memset(origin.a,0,sizeof origin.a); for(int i=0;i<10;i++) { origin.a[i][0]=i; } //print(origin); matrix res; memset(res.a,0,sizeof res.a); for(int i=0;i<9;i++)res.a[i][i+1]=1; for(int i=9;i>=0;i--)scanf("%d",&res.a[9][i]); //print(res); res=matmod(res,k); matrix ans = multiply(res,origin); printf("%d\n",ans.a[0][0]); } 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(矩阵快速幂)
- 计算机网络基础知识开篇
- 数字目录整理
- Struts Tiles框架,标签库详解<tiles:insert page="facebook.jsp" />
- Java中的==和equals
- 舍友变阿里的员工了,UC被阿里完全收购了!
- hdu 1757 A Simple Math Problem (矩阵快速幂)
- 9.3-6 k分位数
- 组件居中一简单方法
- java php.net
- [LeetCode26]Remove Duplicates from Sorted Array
- 大型web应用相关
- leetcandy
- PageRank算法研究
- OC-Protocol实现业务代理