hdu 5015 Matrix 233 矩阵快速幂
来源:互联网 发布:淘宝开店实名认证照片 编辑:程序博客网 时间:2024/06/08 14:44
题目链接:点击打开链接
题意:一个233矩阵,当i,j>1时,值等于其上方元素加左方元素,求data[n][m]%mod;
思路:构造如下矩阵,
1 0 0 0 0 0 0 0 0 0 0 0
1 10 0 0 0 0 0 0 0 0 0 0
1 10 1 0 0 0 0 0 0 0 0 0
1 10 1 1 0 0 0 0 0 0 0 0
1 10 1 1 1 0 0 0 0 0 0 0
1 10 1 1 1 1 0 0 0 0 0 0
1 10 1 1 1 1 1 0 0 0 0 0
1 10 1 1 1 1 1 1 0 0 0 0
1 10 1 1 1 1 1 1 1 0 0 0
1 10 1 1 1 1 1 1 1 1 0 0
1 10 1 1 1 1 1 1 1 1 1 0
1 10 1 1 1 1 1 1 1 1 1 1
每次向后推一列
cpp:
#include <cstdio>#include <iostream>#include <queue>#include <cstring>#include <cmath>#define mod 10000007#define LL long longusing namespace std;struct Matrix{int n;int data[100][100];void set(int a,int b){n=a;memset(data,0,sizeof(data));if(b==1){for(int i=1;i<=n;i++){data[i][i]=1;}}}Matrix operator *(const Matrix& a) const{Matrix ret;ret.set(a.n,0);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){for(int k=1;k<=n;k++){if(data[i][k]&&a.data[k][j]){ret.data[i][j]+=((LL)data[i][k]*a.data[k][j])%mod;}}ret.data[i][j]=(ret.data[i][j])%mod;}}return ret;}void print(){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){printf("%d ",data[i][j]);}puts("");}}};Matrix pow_mod(int n,Matrix a){Matrix T=a,ret;ret.set(a.n,1);while (n){if(n&1) ret=ret*T;T=T*T;n/=2;}return ret;}int main (){int n,m;//freopen("data.in","r",stdin);while (~scanf("%d%d",&n,&m)){Matrix tp;tp.set(n+2,0);for(int i=1;i<=n+2;i++){for(int j=1;j<=i;j++){tp.data[i][j]=1;}tp.data[i][2]=10;}tp.data[1][2]=0;//tp.print();tp=pow_mod(m,tp);int temp[100]={0,3,23};for(int i=3;i<=n+2;i++){scanf("%d",temp+i);}int ans=0;for(int i=1;i<=n+2;i++){ans+=((LL)temp[i]*tp.data[n+2][i])%mod;}ans=(ans)%mod;printf("%d\n",ans);}return 0;}
- 【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 --矩阵快速幂
- hdu 5015-233 Matrix(矩阵快速幂)
- HDU 5015 - 233 Matrix (矩阵构造 矩阵快速幂)
- 矩阵快速幂 HDU 233 Matrix
- poi中怎么像操作excel一样删除一行
- 【Unix/Linux】【命令】【文件,目录操作工具】移动,重命名文件,目录——mv命令
- kaptcha中文验证码
- java进阶内容--连载中
- data,bdata,idata,pdata,xdata,code存储类型与存储区
- hdu 5015 Matrix 233 矩阵快速幂
- 总结:p2p项目
- java正则表达式中的‘\\转义
- hbase异常regionserver宕机
- TIM输出比较的三种模式
- Protobuffor Java使用说明(包含nano、micro版本)附件protobuf-java-2.3.0.jar
- volatile
- HTML5添加 video 视频标签后仍然无法播放的解决方法
- 浅析Java中的final关键字