bzoj2875: [Noi2012]随机数生成器
没改LL见祖宗系列。
矩乘不难推吧。然后要用快速乘
#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #include<queue> using namespace std; typedef long long LL; LL mod;LL n,AA,C,X,G; struct Matrix {LL a[5][5];Matrix(){}Matrix clear(){memset(a,0,sizeof(a));} };LL quick_multi(LL k,LL p) {if(k==0||p==0)return 0LL;LL A=k,ret=0;while(p!=0){if(p%2==1)ret=(ret+A)%mod;A=(A+A)%mod;p/=2;}return ret; } Matrix multi(Matrix A,Matrix B) {Matrix C;C.clear();for(int i=1;i<=2;i++) for(int j=1;j<=2;j++)for(int k=1;k<=2;k++)C.a[i][j]=(C.a[i][j]+quick_multi(A.a[i][k],B.a[k][j]))%mod;return C; } Matrix quick_pow(LL p) {Matrix A,ret;A.clear();ret.clear();A.a[1][1]=1;A.a[1][2]=0;A.a[2][1]=1;A.a[2][2]=AA;ret.a[1][1]=1;ret.a[1][2]=0;ret.a[2][1]=0;ret.a[2][2]=1;while(p!=0){if(p%2==1)ret=multi(ret,A);A=multi(A,A);p/=2;}return ret; } int main() {scanf("%lld%lld%lld%lld%lld%lld",&mod,&AA,&C,&X,&n,&G);Matrix ans;ans.clear();ans.a[1][1]=C;ans.a[2][1]=X;ans=multi(quick_pow(n),ans);printf("%lld\n",ans.a[2][1]%G);return 0; }
转载于:https://www.cnblogs.com/AKCqhzdy/p/8643490.html
bzoj2875: [Noi2012]随机数生成器相关推荐
- [bzoj2875][Noi2012]随机数生成器
来自FallDream的博客,未经允许,请勿转载,谢谢. 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个 ...
- luogu P3306 [SDOI2013] 随机数生成器(BSGS,数列求通项,毒瘤特判)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 发个水题的 题解证明我还在() luogu P3306 [SDOI2013] 随机数生成器 Webli ...
- Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random, ThreadLocalRandom 即 ...
- 开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器
原文:[原创]开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器 本博客所有文章分类的总目录:http://www.cnblogs.com/asxiny ...
- P5147 随机数生成器 [数列]
P5147 随机数生成器 数学老师看不懂系列 看题目这一片代码就很晕: int work(int x) {if(x==1)return 0;else return work(rand(1,x))+1; ...
- UA STAT675 统计计算I 随机数生成1 随机数生成器的一般理论
UA STAT675 统计计算I 随机数生成1 随机数生成器的一般理论 RNG的抽象表示 RNG的质量指标 RNG的统计检测 在统计计算中,从某个分布中进行采样通常分为两个步骤: 生成随机数z1,z2 ...
- boost::sort模块实现提供多种分布的灵活随机数生成器的测试程序
boost::sort模块实现提供多种分布的灵活随机数生成器的测试程序 实现功能 C++实现代码 实现功能 boost::sort模块实现提供多种分布的灵活随机数生成器的测试程序 C++实现代码 #i ...
- boost::sort模块实现支持不同分布的随机数生成器的测试程序
boost::sort模块实现支持不同分布的随机数生成器的测试程序 实现功能 C++实现代码 实现功能 boost::sort模块实现支持不同分布的随机数生成器的测试程序 C++实现代码 #inclu ...
- ITK:Mersenne Twister随机数生成器
ITK:Mersenne Twister随机数生成器 内容提要 C++实现代码 内容提要 产生一个随机数 C++实现代码 #include "itkMersenneTwisterRandom ...
最新文章
- Python模型顶点法线修复
- 点击按钮改变div的颜色
- python 拓扑排序_拓扑排序(topsort)算法详解
- Extjs4中up()和down()的用法以及组件查找_ComponentQuery类
- ubuntu 16.04 安装QT问题
- tree命令生成目录结构
- [渝粤教育] 广东-国家-开放大学 21秋期末考试互联网营销概论10092k2
- npm publish发布包时出现403错误no_perms Private mode enable, only admin can publish this module:
- python设计模式之工厂模式概述
- 【数学建模】MATLAB应用实战系列(138)-2021年MathorCup高校数学建模挑战赛A题思路解析(附代码)
- 前端工程化--yeoman使用
- VS2005 安装 WTL80
- 2020年电子设计竞赛 B题-单相在线式不间断电源 分析与总结
- 20145201 《信息安全系统设计基础》期中总结
- 【一起学Rust | 设计模式】新类型模式
- 2016用户体验行业调查报告
- 3.22全局参数的保存_补作业来啦~~
- php老虎杠子鸡虫条件,老虎、杠子、鸡——在游戏中学习
- Python实战案例05
- 容器中启动ssh状态总是sshd is not running
热门文章
- 【译】Why Decentralized AI Matters Part III: Technologies
- Android AOP之字节码插桩
- 在windows下将Tomcat设置为自动启动的服务
- C#、C++、JAVA中虚函数和抽象函数的概念对比
- devc++鼠标变成了光标_游戏鼠标到底能不能提升你的实力?
- 禁用cookie后怎么使用session_Session 和 Cookie 的区别?你在项目中哪些地方使用了?...
- python的类与模块_Python类与模块属性
- 李开复开发的国际象棋软件
- 使用C/C++解析json文件
- 2017年10月05日普及组 约数