2875: [Noi2012]随机数生成器 矩阵乘法+快速乘
来源:互联网 发布:极课大数据怎么样 编辑:程序博客网 时间:2024/05/16 09:32
傻逼题,快速乘忘记取模TLE了一发。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;long long m,a,c,x0,n,g;long long mul(long long a,long long b){ long long ans=0; for (;b;b>>=1,(a<<=1)%=m) if (b&1) (ans+=a)%=m; return ans;}struct Matrix{ long long a[2][2]; Matrix() { memset(a,0,sizeof(a)); } friend Matrix operator*(Matrix a,Matrix b) { Matrix ans; for (int i=0;i<2;i++) for (int j=0;j<2;j++) for (int k=0;k<2;k++) (ans.a[i][j]+=mul(a.a[i][k],b.a[k][j]))%=m; return ans; } friend Matrix operator^(Matrix a,long long b) { Matrix ans; for (int i=0;i<2;i++) ans.a[i][i]=1; for (;b;b>>=1,a=a*a) if (b&1) ans=ans*a; return ans; }}A;int main(){ scanf("%lld%lld%lld%lld%lld%lld",&m,&a,&c,&x0,&n,&g); A.a[0][0]=a; A.a[0][1]=c; A.a[1][0]=0; A.a[1][1]=1; A=A^n; cout << (mul(A.a[0][0],x0)+A.a[0][1])%m%g << endl; return 0;}
0 0
- 2875: [Noi2012]随机数生成器 (矩阵乘法,快速幂,快速乘)
- 2875: [Noi2012]随机数生成器 矩阵乘法+快速乘
- [BZOJ 2875][Noi2012]随机数生成器:矩阵乘法+快速乘
- [NOI2012]随机数生成器(矩阵乘法+快速乘)
- BZOJ2875: [Noi2012]随机数生成器 矩阵乘法+快速乘
- BZOJ2875: [Noi2012]随机数生成器 矩阵乘法+快速乘
- [BZOJ2875][Noi2012]随机数生成器 && 矩阵+快速乘
- BZOJ 2875 NOI2012 随机数生成器 矩阵乘法
- 【BZOJ 2875】[Noi2012]随机数生成器 矩阵乘法
- Bzoj 2875: [Noi2012]随机数生成器(矩阵乘法)
- 【NOI2012】随机数生成器【矩阵乘法】
- BZOJ-2875 随机数生成器 矩阵乘法快速幂+快速乘
- bzoj2875 [Noi2012]随机数生成器 [矩阵+快乘]
- BZOJ 2875: [Noi2012]随机数生成器【矩阵乘法优化递推
- [BZOJ2875]NOI2012随机数生成器|矩阵乘法
- bzoj2875: [Noi2012]随机数生成器 裸矩阵乘法
- [BZOJ2875][NOI2012]随机数生成器(矩阵乘法)
- [BZOJ2875] [NOI2012] 随机数生成器 - 矩阵快速幂
- php中数组排序
- (转载)OpenCV坐标体系+minMaxLoc的使用细节
- 利用二维数组输出杨辉三角
- gulp详细入门教程
- 用js文件代码来替代html中的js
- 2875: [Noi2012]随机数生成器 矩阵乘法+快速乘
- APACHE如何里一个站点绑定多个域名?用ServerAlias servername
- 最小树形图uva11183
- sse3编译命令
- css布局模型
- iOS_MD5入门浅谈
- c++程序设计笔记(1)
- Web前端开发-7
- jsp,div 限制字数,超出部分用省略号代替