NOI2012 隨機數生成器

2021-09-30 12:21:08 字數 550 閱讀 7329

bzoj2875

第一眼看是矩陣乘法+高精,順便藉此機會學了一下壓八位高精

然後一直wa…拍到最後拍不下去了,索性重打了一遍,不過沒用高精,用的類似快速冪的快速乘,同樣解決了溢位問題~

**:

(快速乘+矩陣乘法)

#include

#include

#include

#include

typedef long long ll;

using namespace std;

struct matrixans,mid;

ll m,a,c,x

0,n,g;

ll mult(ll a,ll b)

return ans;

}matrix operator *(const matrix &a,const matrix &b)}}

return ans;

}ll ppow()

return ans.num[1][1]%m;

}int main()

noi2012隨機數生成器

x n 1 ax n c mod m其中mod m表示前面的數除以m的餘數。從這個式子可以看出,這個序列的下乙個數總是由上乙個數生成的。用這種方法生成的序列具有隨機序列的性質,因此這種方法被廣泛地使用,包括常用的c 和pascal的產生隨機數的庫函式使用的也是這種方法。棟棟知道這樣產生的序列具有良好...

NOI2012 隨機數生成器 矩陣乘法

棟棟最近迷上了隨機演算法,而隨機數是生成隨機演算法的基礎。棟棟準備使用線性同餘法 linear congruential method 來生成乙個隨機數列,這種方法需要設定四個非負整數引數m,a,c,x 0 按照下面的公式生成出一系列隨機數 x n 1 ax n c mod m用這種方法生成的序列具...

NOI2012 隨機數生成器 矩陣快速冪

棟棟最近迷上了隨機演算法,而隨機數是生成隨機演算法的基礎。棟棟準備使用線性同餘法 linear congruential method 來生成乙個隨機數列,這種方法需要設定四個非負整數引數 m,a,c,x 0 按照下面的公式生成出一系列隨機數 x ax n c bmod m 其中 mod m 表示前...