[NOI2012]随机数生成器
题解:
很显然是一道矩阵优化dp
然而表示我很智障地把式子一个个带入
然后就发现了为什么会有那些部分分(大概用扩欧是70吧)
注意用矩阵计算的时候要用快速乘(当然想写高精那也随便,时间无限宽裕)
代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll m,aa,c,x,n,g,mo1;
struct re{
ll jz[][];
}a;
ll ksc(ll x,ll y)
{
if (y==) return();
if (y==) return(x);
ll tmp=ksc(x,y/);
tmp=(tmp*)%mo1;
if (y%==) tmp=(tmp+x)%mo1;
return(tmp);
}
re XX(re x,re y)
{
re tmp;
memset(tmp.jz,,sizeof(tmp.jz));
for (ll i=;i<=;i++)
for (ll j=;j<=;j++)
for (ll k=;k<=;k++)
tmp.jz[i][k]+=ksc(x.jz[i][j],y.jz[j][k]),
tmp.jz[i][k]%=mo1;
return(tmp);
}
re fast_pow(ll x)
{
if (x==) return(a);
re b=fast_pow(x/);
b=XX(b,b);
if (x%) b=XX(b,a);
return(b);
}
int main()
{
cin>>mo1>>aa>>c>>x>>n>>g;
a.jz[][]=aa; a.jz[][]=c;
a.jz[][]=; a.jz[][]=;
re cc=fast_pow(n);
ll ans=((ksc(cc.jz[][],x)+cc.jz[][])%mo1)%g;
cout<<ans;
return ;
}
[NOI2012]随机数生成器的更多相关文章
- 矩阵(快速幂):COGS 963. [NOI2012] 随机数生成器
963. [NOI2012] 随机数生成器 ★★ 输入文件:randoma.in 输出文件:randoma.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 栋 ...
- BZOJ 2875: [Noi2012]随机数生成器( 矩阵快速幂 )
矩阵快速幂...+快速乘就OK了 ----------------------------------------------------------------------------------- ...
- Bzoj 2875: [Noi2012]随机数生成器(矩阵乘法)
2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2052 Solved: 1118 Description ...
- [NOI2012]随机数生成器【矩阵快速幂】
NOI2012 随机数生成器 题目描述 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法 ...
- LG2044 [NOI2012]随机数生成器
题意 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c ...
- BZOJ2875 & 洛谷2044:[NOI2012]随机数生成器——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=2875 https://www.luogu.org/problemnew/show/P2044 栋栋 ...
- BZOJ2875 [Noi2012]随机数生成器 【矩阵乘法 + 快速乘】
题目 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Me thod)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a, ...
- bzoj 2875: [Noi2012]随机数生成器
#include<cstdio> #include<iostream> #include<cstring> #define ll long long using n ...
- 【BZOJ】2875: [Noi2012]随机数生成器(矩阵乘法+快速乘)
http://www.lydsy.com/JudgeOnline/problem.php?id=2875 矩阵的话很容易看出来.....我就不写了.太水了. 然后乘法longlong会溢出...那么我 ...
- 2875: [Noi2012]随机数生成器 - BZOJ
DescriptionInput 包含6个用空格分割的m,a,c,X0,n和g,其中a,c,X0是非负整数,m,n,g是正整数. Output 输出一个数,即Xn mod gSample Input ...
随机推荐
- ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展
ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty.Zend 等系统的类 ...
- C++ STL sort()函数用法
C++STL提供的在里的排序函数,有以下两种形式 此外还提供有稳定排序版本stable_sort(),用法类似. 第一种形式: template <class RandomAccessItera ...
- springboot(八)自定义Filter、自定义Property
自定义Filter 我们常常在项目中会使用filters用于录调用日志.排除有XSS威胁的字符.执行权限验证等等. Spring Boot自动添加了OrderedCharacterEncodingFi ...
- 树的dfs序.欧拉序
dfs序 ==先序,连续一段区间就是子树
- FineReport: 清空(重置)条件reset()
在使用控件时,有时我们希望能够快捷的重置控件的内容,或者重置所有控件的内容,效果如下图所示: 1.给需要重置的控件设置控件名 2.给重置按钮设置点击事件 3.点击事件中加入javascript代码 只 ...
- <video>标签:视频播放器动态设置src
HTML代码 <div id="my_div"> <video id="my_video" width="600" ...
- js 执行上下文理解
前端基础进阶(三):变量对象详解http://www.jianshu.com/p/330b1505e41d 1.创建阶段 a.生成变量对象 1.创建arguments对象 2.functio ...
- Udacity并行计算课程 CS344 编程作业答案
Problem set 1 // Homework 1 // Color to Greyscale Conversion //A common way to represent color image ...
- java读取视频文件时长
1.下载jar包:http://www.sauronsoftware.it/projects/jave/index.php 2.上代码 @RequestMapping(value = "am ...
- GCC 符号表小结【转】
转自:https://blog.csdn.net/swedenfeng/article/details/53417085 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...