2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2052 Solved: 1118 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Me thod)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机 数X[n]X[n+1]=(aX[n]+c)mod m其中mo…
矩阵快速幂...+快速乘就OK了 -------------------------------------------------------------------------------------- #include<bits/stdc++.h>   using namespace std;   typedef long long ll;   ll MOD, a, c, x, n, g;   ll MUL(ll a, ll b) { ll ans = 0; for(; b; b >…
题目没给全,吃X了... 2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1479 Solved: 829 [Submit][Status][Discuss] Description 栋栋最近迷上了随机算法,而随机数生成是随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m, a, c, X0,按照下面的公式生…
题目链接:https://vijos.org/p/1725 http://www.lydsy.com/JudgeOnline/problem.php?id=2875 这题是前几年的noi的题,时间比较久远了所以就不是那么的难了 这是一个非常裸的矩阵乘法,一般矩阵乘法就是矩阵+快速幂 只是这道题在矩阵乘法的时候单纯的乘法会溢出,所以还要用到快速乘法 网上也有说用long double黑科技的,虽然我不是很懂那个东东 构造矩阵 单位矩阵a,c 0,1 答案矩阵   Xi-1 1 我的这个矩阵构造可能…
#include<cstdio> #include<iostream> #include<cstring> #define ll long long using namespace std; ll x[][],y[][],m,a,c,x0,n,g; ll chen1(ll a1,ll a2) { long long a3; if(!a2) ; a3=chen1(a1,a2>>); a3=(a3+a3)%m; ) a3=(a3+a1)%m; return a3…
Code: #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #include<string> using namespace std; void setIO(string a){ freopen((a+".in").c_str(),"r",stdin); } #define ll long long ll m…
http://www.lydsy.com/JudgeOnline/problem.php?id=2875 矩阵的话很容易看出来.....我就不写了.太水了. 然后乘法longlong会溢出...那么我们用快速乘...就是将快速幂的乘法变成加法...这种很简单吧.. #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream>…
题面: 传送门 思路: 看一眼这个公式: $x\left[n+1\right]=\left(a\ast x\left[n\right]+c\right) mod m$ 递推,数据范围$n\leq 10^18$,自然想到矩阵快速幂 构造如下矩阵: 状态矩阵: $\begin{bmatrix}x\lbrack i\rbrack&1\end{bmatrix}$ 转移矩阵: $\begin{bmatrix}a&0\\c&1\end{bmatrix}$ 从x[0]开始做转移矩阵的n次幂,再乘…
好裸的矩阵快速幂-然而我一开始居然构造不出矩阵- 平常两个的情况都是拿相邻两项放在矩阵里拿去递推的-然后我就一直构造不出来-其实把矩阵下面弄成1就好了啊orz #include<cstdio> #include<cstring> #define rep(i,n) for(register lint i=1;i<=n;i++) typedef long long lint; lint m,n,g; struct matrix { lint m[3][3]; matrix(){m…
DescriptionInput 包含6个用空格分割的m,a,c,X0,n和g,其中a,c,X0是非负整数,m,n,g是正整数. Output 输出一个数,即Xn mod gSample Input 11 8 7 1 5 3 Sample Output2 快速幂+快速乘 type matrix=..,..]of int64; var a,c,p,x0,n,g:int64; x,y:matrix; function kc(x,y:int64):int64; begin ); kc:=kc(x,y>…