洛谷P2044 NOI2012 隨機數生成器

2022-08-20 23:39:10 字數 716 閱讀 1439

數列$x_=(ax_n+c)\bmod m$

其中$a,c$是給定的常數,$n>0$。$x_0$的值已給出。

然後呢,你需要求出$x_n\bmod g$。

$n,m,a,c,x_0\leq10^,g\leq 10^8$。

構造列向量

$$c_n=\begin1\\x_n\end$$

然後,構造轉移矩陣

$$\begin1&0\\c&a\endc_n=c_$$

嗯。然後要注意的:

$$a\bmod m\bmod g\not=a\bmod \min(m,g)$$。

所以要用到神奇的long long乘法。

嗯。貼**:

#include using namespace std;

typedef long long ll;

typedef array, 3> matrix;

ll p;

matrix a, i;

inline ll mulmod(ll a, ll b, ll m)

matrix matrixmul(const matrix &a, const matrix &b)

return ret;

}matrix powermod(ll k)

signed main()

printf("%lld\n", ans);

return 0;

}

洛谷P2050 NOI2012 美食節

題目 輸入格式 輸入檔案的第1行包含兩個正整數n和m,表示菜品的種數和廚師的數量。第2行包含n個正整數,其中第i個數為pi,表示點第i種菜品的人數。接下來有n行,每行包含m個非負整數,這n行中的第i行的第j個數為ti,j,表示第j個廚師製作第i種菜品所需的時間。輸入檔案中每行相鄰的兩個數之間均由乙個...

洛谷 P4768 NOI2018 歸程

題目 歸程 歸程 思路 1 一種海拔 30 求最短路。詢問時,海拔 0,輸出0 否則輸出dist v 2 鏈 15 離散化。預處理出不同海拔 每個點開始到起點的答案,查表輸出。3 樹 10 樹上倍增。4 kruskal重構樹 樹上倍增。做kruskal時,在並查集路徑壓縮時,同時存下樹的心態。即,在...

洛谷P2044 隨機數生成器

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