题目描述 Description

给你6个数,m, a, c, x0, n, g

Xn+1 = ( aXn + c ) mod m,求Xn

m, a, c, x0, n, g<=10^18

输入描述 Input Description

一行六个数 m, a, c, x0, n, g

输出描述 Output Description

输出一个数 Xn mod g

#include<iostream>
using namespace std;
struct node{
long long v[][];
}t,tt;long long a,c,m,n,x,g;
long long quick_mult(long long a,long long b,long long mod)
{
long long re=;
while(a)
{
if(a&)re=(re+b)%mod;
b=(b+b)%mod;
a>>=;
}
return re;
}
node ju(node a,node b)
{
node re;
for(int i=;i<;i++)
for(int j=;j<;j++)
{
re.v[i][j]=;
for(int k=;k<;k++)
re.v[i][j]+=quick_mult(a.v[i][k],b.v[k][j],m);
re.v[i][j]%=m;
}
return re;
}
long long ans()
{
node re=tt,r=t;
while(n)
{
if(n&)re=ju(re,r);
r=ju(r,r);
n>>=;
}
return re.v[][]%g;
}
int main()
{
scanf("%lld%lld%lld%lld%lld%lld",&m,&a,&c,&x,&n,&g);
t.v[][]=a%m;
t.v[][]=;
t.v[][]=c%m;
t.v[][]=;
tt.v[][]=x%m;
tt.v[][]=;
tt.v[][]=;
tt.v[][]=;
cout<<ans()<<endl;
return ;
}

这个题目用到的内容 矩阵乘法 快速幂 快速乘
矩阵乘法 略
快速幂 
   使用二进制进行多次乘  几倍底数 减少运算量
  int pow4(int a,int b){

  int r=1,base=a;
  while(b){
    if(b&1) r*=base;
    base*=base;
    b>>=1;
  }
  return r;
}
 快速乘和快速幂差不多的结构  用来解决 2个longlong型整数相乘取余的问题
如果两个longlong类型的整数直接相乘可能会溢出 
使用加法一边加一遍取余则会减小溢出的可能  
采用和快速幂一样的方法 快速处理并取余
long long quick_mult(long long a,long long b,long long mod)
{
long long re=0;
while(a)
{
if(a&1)re=(re+b)%mod;
b=(b+b)%mod;
a>>=1;
}
  return re;
}

最新文章

  1. 阅读笔记 火球UML大战需求分析3
  2. MFC编程入门之二十(常用控件:静态文本框)
  3. Ubuntu 下配置Ganglia监控
  4. Druid 数据库连接池监控配置(web项目)
  5. Android-- FragmentStatePagerAdapter分页(转载)
  6. nginx:配置详细说明
  7. angularJS项目-ajax事件的按钮loading和页面loading状态 &amp; Controller之间通信-待续
  8. 机顶盒Demux
  9. HTML5给我们带来了什么?
  10. 一种协程的 C/C++ 实现
  11. Xamarin devexpress Grid
  12. Android开发环境的搭建之(四)虚拟设备AVD的基本配置
  13. vmware虚拟机上linux操作系统进行tty1~tty6切换方法和具体步骤
  14. Google是不是真的不能用了?非常奇怪的问题
  15. FLAnimatedImageView处理gif过程
  16. SPOJ Highways [矩阵树定理]
  17. pandas,读取或存储DataFrames的数据到mysql中
  18. elementUI 设置input的只读或禁用
  19. Django项目——CRM
  20. mysql数据库解决中文乱码的问题

热门文章

  1. HTTP、HTTP1.0、HTTP1.1、HTTP2.0、HTTPS
  2. Shell 脚本的编码规范
  3. 第七章 yaml格式
  4. Sed的查,删,增,改
  5. Comet OJ - contest #3 C DP
  6. 【JDK1.8】Java HashMap实现细节
  7. 第1篇Kubernetes介绍
  8. favicon.ico引用
  9. openwrt ssh免密登录
  10. Spring 整合 Redis(转)