bzoj2875随机数生成器
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2875
矩阵乘裸题。
如果直接乘的话会爆long long,所以用加法代替乘,过程中不断取模。
加法应是快速乘,不要O(n)循环……
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
ll n,m,g,a,c,ans,x;
ll mul(ll u,ll v)
{
ll ret=,tp=u;
while(v)
{
if(v&)(ret+=tp)%=m;
(tp+=tp)%=m;v>>=;
}
return ret;
}
struct Matrix{
ll v[][];
Matrix operator *(const Matrix &b)const
{
Matrix tp;memset(tp.v,,sizeof tp.v);
for(int i=;i<=;i++)
for(int j=;j<=;j++)
for(int k=;k<=;k++)
(tp.v[i][j]+=mul(v[i][k],b.v[k][j]))%=m;
return tp;
}
}res,ct;
void init()
{
scanf("%lld%lld%lld%lld%lld%lld",&m,&a,&c,&x,&n,&g);
n--;
res.v[][]=a;res.v[][]=;
res.v[][]=;res.v[][]=;
memcpy(ct.v,res.v,sizeof res.v);
}
int main()
{
init();
while(n)
{
if(n&)res=res*ct;
ct=ct*ct;n>>=;
}
ans=(mul(res.v[][],x)+mul(res.v[][],c))%m%g;
printf("%lld",ans);
return ;
}
bzoj2875随机数生成器的更多相关文章
- BZOJ-2875  随机数生成器    矩阵乘法快速幂+快速乘
		题目没给全,吃X了... 2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1479 Solved: 829 ... 
- bzoj2875随机数生成器——矩阵快速幂
		题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2875 矩阵快速幂,把x和c分开求,最后加上即可: 为防止爆long long,要用快速乘. ... 
- [vijos1725&bzoj2875]随机数生成器<矩阵乘法&快速幂&快速乘>
		题目链接:https://vijos.org/p/1725 http://www.lydsy.com/JudgeOnline/problem.php?id=2875 这题是前几年的noi的题,时间比较 ... 
- 【BZOJ2875】随机数生成器(矩阵快速幂)
		[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Me ... 
- 【BZOJ2875】【NOI2012】随机数生成器(矩阵快速幂)
		[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Me ... 
- 【原创】开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器
		本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ... 
- 【BZOJ-3122】随机数生成器       BSGS
		3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1362 Solved: 531[Submit][Sta ... 
- [BZOJ3671][UOJ#6][NOI2014]随机数生成器
		[BZOJ3671][UOJ#6][NOI2014]随机数生成器 试题描述 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来 ... 
- NOI2014 随机数生成器
		随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ... 
随机推荐
- Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
			http://lib.csdn.net/article/aimachinelearning/68113 原文地址:http://blog.csdn.net/jinzhuojun/article/det ... 
- composer方式安装thinkphp5,安装smarty
			转载地址: https://my.oschina.net/inuxor/blog/750717 composer 是 PHP 用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所 ... 
- P1174 打砖块
			P1174 打砖块 普通分组背包:50pts 题解说的啥????(大雾) 看了半天 $s[0/1][i][j]$表示第$i$列用$j$发子弹,最后一发是1/否0打在该列上的价值 $f[0/1][i][ ... 
- TypeScript 照猫画虎
			定义变量类型 const num: number = 1 定义函数参数类型 const init: (p: str) => void = function(param) { alert(para ... 
- IDEA类和方法注释模板设置
			在开发中使用idea的注释总结:由于IDEA自带的注释模板不是太好用,所以整理一下适用于自己的模板: 一.首先我们来设置IDEA中类的模板:(IDEA中在创建类时会自动给添加注释) 1.File--& ... 
- JQuery Ajax jsonp
			JQuery ajax jsonp $.ajax({ method:"POST", url:"http://localhost:8081/ChenLei/PeopleSe ... 
- RPC框架yar安装
			官方网站: http://pecl.php.net/package/msgpack http://pecl.php.net/package/yar 先安装 msgpack $ git clone ht ... 
- java中static关键字的使用
			知识点:java中,static关键字修饰类的变量.方法.代码块.内部类 场景:我们在创建类的方法和变量时,如果这个类在创建多个对象时,共用同一个属性或者方法,就可以使用static关键字修饰,因为s ... 
- 使用CAS实现无锁的SkipList
			无锁 并发环境下最常用的同步手段是互斥锁和读写锁,例如pthread_mutex和pthread_readwrite_lock,常用的范式为: void ConcurrencyOperation() ... 
- thinkphp3.2笔记(2)调试模式,配置项C,创建模块, 四种URL模式,URL生成,跳转
			一.调试模式 TP的调试模式其实就控制了TP关于配置信息以及函数的缓存功能 如果开启了调试模式,每次访问项目,Tp都会去加载最新的配置以及函数信息. 如果关闭了调试模式,当tp第一次访问时会降配置以及 ... 
