hdu 5015 233 Matrix (递推 矩阵快速幂)
来源:互联网 发布:java asynchttpclient 编辑:程序博客网 时间:2024/05/18 03:26
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015
题意:题目说的很清楚了。
思路:
感觉这道题目如果对矩阵快速幂比较敏感的话,稍微想一下就能构造出来这个矩阵,唯一比较麻烦的就是那个233,为此我们在矩阵中多加了两维来专门计算这个233。
以5为例构造矩阵如下:
最后用快速幂加速一下就好了。
code:
#include <cstdio>#include <cstdlib>#include <iostream>#include <vector>#define INF 10000005000using namespace std;typedef long long LL;typedef vector<LL> vec;typedef vector<vec> mat;const LL mo=10000007;const int maxn=20;int a[maxn];mat mul(mat &A,mat &B){ mat C(A.size(),vec(B[0].size())); for(int i=0;i<A.size();i++){ for(int k=0;k<B.size();k++){ for(int j=0;j<B[0].size();j++){ C[i][j]=(C[i][j]+A[i][k]*B[k][j])%mo; } } } return C;}mat pow(mat A,LL n){ mat B(A.size(),vec(A.size())); for(int i=0;i<A.size();i++){ B[i][i]=1; } while(n>0){ if(n&1) B=mul(B,A); A=mul(A,A); n>>=1; } return B;}int main(){ int N,M; while(scanf("%d%d",&N,&M)!=EOF){ for(int i=0;i<N;i++){scanf("%I64d",&a[i]);} mat A(N+2,vec(N+2)); mat B(N+2,vec(1)); A[0][0]=1; for(int i=1;i<N+2;i++) A[0][i]=0; for(int i=1;i<N+2;i++){ A[i][0]=1; A[i][1]=10; for(int j=2;j<=i;j++) A[i][j]=1; for(int j=i+1;j<N+2;j++) A[i][j]=0; } A=pow(A,M); B[0][0]=3; B[1][0]=23; for(int i=0;i<N;i++) B[i+2][0]=a[i]; B=mul(A,B); printf("%I64d\n",B[N+1][0]); } return 0;}
0 0
- hdu 5015 233 Matrix (递推 矩阵快速幂)
- HDU 5015 233Matrix(矩阵快速幂+递推)
- HDU 5015 233 Matrix 矩阵递推
- 【HDU】5015 233 Matrix 矩阵快速幂
- hdu 5015 233 Matrix 矩阵快速幂
- hdu 5015 233 Matrix(矩阵快速幂)
- hdu 5015 Matrix 233 矩阵快速幂
- hdu 5015 233 Matrix(矩阵快速幂)
- HDU 5015 233 Matrix 矩阵快速幂
- [矩阵快速幂] hdu 5015 233 Matrix
- hdu 5015 233 Matrix 矩阵快速幂
- Hdu 5015 233 Matrix 矩阵快速幂
- HDU 5015 233 Matrix --矩阵快速幂
- hdu 5015 233 Matrix (矩阵快速幂)
- HDU 5015-233 Matrix-矩阵快速幂
- HDU 5015 233 Matrix 【矩阵快速幂】
- 233 Matrix hdu 5015(矩阵快速幂)
- HDU 5015 233 Matrix --矩阵快速幂
- Cocoa 框架 For iOS(一) 框架的介绍,Objectivie-C运行时能力的解析等
- C++中值传递、指针传递、引用传递的总结
- 互斥锁和条件变量的结合使用
- 无法Debug SQL: Unable to start T-SQL Debugging. Could not attach to SQL Server process on
- hdu4416 Good Article Good sentence(SAM)
- hdu 5015 233 Matrix (递推 矩阵快速幂)
- Hadoop cdh4.2.1 安装笔记
- websocket
- 使用 ^ 位运算符交换值的细节
- linux : gerrit搭建配置服务器+git简单操作+apache代理配置+部分遇到的错误及处理
- 蛋蛋的问题(一)
- ios之基础Demo问题总结
- 【十四】注入框架RoboGuice使用总结
- 如何去除editplus自动生成.bak备份文件的设置