hdu 1757 A Simple Math Problem(矩阵连乘)
来源:互联网 发布:自定义oid取不到数据 编辑:程序博客网 时间:2024/06/10 05:23
题意:http://acm.hdu.edu.cn/showproblem.php?pid=1757
f[10]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)*(9,8,7,6,5,4,3,2,1,0)'
f[11]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)*(f[10],9,8,7,6,5,4,3,2,1)'
f[n]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)*(f[n-1],f[n-2],f[n-3],f[n-4],f[n-5],f[n-6],f[n-7],f[n-8],f[n-9],f[n-10])'
让我们填完左边和右边的f系列对应完整看看会发生什么:
递推式找到了,最后确定原始的f系列值:
9,8,7,6,5,4,3,2,1,0
接下来写出相应的代码即可:
#include <iostream>#include<cstdio>using namespace std;int k,m;struct matrix{ int q[10][10];};matrix I;matrix A;matrix multi(matrix a,matrix b){ matrix c={0}; for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ for(int k=0;k<10;k++){ c.q[i][j]+=(a.q[i][k]%m*(b.q[k][j]%m))%m; } } } return c;}matrix power(matrix a,int po){ matrix c=I; while(po){ if(po&1){ po--; c=multi(c,a); } po>>=1; a=multi(a,a); } return c;}int main(){ //freopen("cin.txt","r",stdin); int i,j; for(i=0;i<10;i++){ for(j=0;j<10;j++){ if(i==j)I.q[i][j]=1; else I.q[i][j]=0; } } for(i=1;i<10;i++){ A.q[i][i-1]=1; } while(cin>>k>>m){ for(i=0;i<10;i++){ scanf("%d",&A.q[0][i]); } if(k>9){ matrix rem=power(A,k-9); int ans=0; for(j=0;j<10;j++){ ans+=(9-j)*rem.q[0][j]%m; } printf("%d\n",ans%m); } else printf("%d\n",k%m); } return 0;}
0 0
- hdu 1757 A Simple Math Problem(矩阵连乘)
- nefu A Simple Math Problem 459 (矩阵连乘)
- hdu 1757 A Simple Math Problem 矩阵
- hdu 1757 A Simple Math Problem 矩阵
- 【HDU 1757 A Simple Math Problem】+ 矩阵
- HDU - problem 1757 A Simple Math Problem【矩阵 + 快速幂】
- 【矩阵乘法】hdu hdoj 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 (矩阵快速幂)
- [iOS]使用autolayout的时候会有明明设置和父视图左右间距为0但却还有空隙问题
- leetcode#224 Basic Calculator
- HTML5*与html
- [华为机试练习题]44.24点游戏算法
- 黑马程序员——Java基础---线程的另一个总结(4)--线程通信(互斥),线程范围的共享变量
- hdu 1757 A Simple Math Problem(矩阵连乘)
- ACPI 高级配置与电源接口 (介绍的比较详细)
- 拾匦尚世霉壮敬染由冠槐文
- Codeforces Round #310 (Div. 1) B. Case of Fugitive
- 20150630_UI之按钮UIButton使用
- C++实现顺序栈之两栈共享存储空间
- ViewController 生命周期重要方法
- const修饰指针时候的注意事项
- Centos上8080端口被占用解决办法