HDU 4565 矩阵快速幂
来源:互联网 发布:网络平台贷款逾期 编辑:程序博客网 时间:2024/06/08 12:09
//矩阵快速幂模板//用矩阵快速幂实现斐波拉希数的推导//{//1,1//1,0//}/////这个矩阵自乘n次。连续自乘n次的话就没意思了,那还不如直接上Fibonacci递推公式呢。///矩阵的魅力就在于它可以上快速幂。因为矩阵乘法满足结合律么……///注意取模//加M因为有mod负#include <cstdlib>#include <cstring>#include <cstdio>#include <iostream>#define LL __int64using namespace std;LL n,M,a,b,a1,a2;LL tempa,tempb;struct matrix///定义数组{ LL a[2][2];}origin,res;void init(){ origin.a[0][0]=tempa; origin.a[0][1]=tempb; origin.a[1][0]=1; origin.a[1][1]=0; memset(res.a,0,sizeof(res.a)); res.a[0][0]=res.a[1][1]=1; //将res.a初始化为单位矩阵}matrix multiply(matrix x,matrix y){ matrix temp; memset(temp.a,0,sizeof(temp.a)); for(int i=0;i<2;i++) { for(int j=0;j<2;j++) { for(int k=0;k<2;k++) { temp.a[i][j]+=x.a[i][k]*y.a[k][j]; temp.a[i][j]=(temp.a[i][j]+M)%M; } } } return temp;}void matmod(LL n){ while(n) { if(n&1) res=multiply(res,origin); n>>=1; origin=multiply(origin,origin); } LL C1=2*a; LL C0=2; //printf("c1 = %d\n",C1); printf("%I64d\n",((res.a[0][0]*C1+res.a[0][1]*C0)+M)%M);//我忘了我加了M}int main(){///a0特判。。。。!!!!!!!!!!!!!!!!!!!!!!!!!!!1 while(scanf("%I64d%I64d%I64d%I64d",&a,&b,&n,&M)!=EOF) { tempa=2*a; tempb=b-a*a; a1=2*a; a2=2*a*a+2*b; if(n==2) cout<<(a2%M)<<endl; else if(n==1) cout<<(a1%M)<<endl; else if(n==0) cout<<"1"<<endl; else { //cout<<tempa<<" "<<tempb<<endl; init(); matmod(n-1); } } return 0;}
0 0
- HDU 4565 矩阵快速幂
- hdu 4565(矩阵快速幂)
- HDU 4565 矩阵快速幂
- hdu 4565(矩阵快速幂)
- hdu 4565 (快速矩阵幂)
- HDU 4565 So Easy! (矩阵快速幂)
- hdu 4565 公式推导+矩阵快速幂
- hdu 4565 - So Easy!(矩阵快速幂)
- hdu 4565 So Easy! 矩阵快速幂
- HDU 4565 So Easy!(矩阵快速幂)
- HDU 4565 So Easy!(矩阵快速幂)
- HDU 4565So Easy! 矩阵快速幂
- hdu 4565 So Easy!(矩阵快速幂)
- HDU - 4565 So Easy! 矩阵快速幂
- hdu 4565 推倒公式+矩阵快速幂
- HDU 4565 (数学推导 矩阵快速幂)
- 矩阵快速幂——HDU 4565
- HDU 4565 so easy ! 矩阵快速幂
- Java非静态内部类为什么不能有静态成员
- java使用wordnet获取近义词
- Linux内核常用的一些宏的收集
- jeasyui.extensions.tree.js
- nginx通过TCP以及unix-domain-socket连接fastcgi方式对比
- HDU 4565 矩阵快速幂
- 安卓--活动--个人总结,精华
- POJ 1840 HASH
- MySql+Memcached架构的问题
- POJ 2409 ploya定理
- nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket
- UIApplication sharedApplication 的常用使用方法
- POJ 3070 矩阵快速幂
- html5学习笔记