SDOI2013 隨機數生成器

2022-05-19 02:42:39 字數 822 閱讀 3177

題意:

給定$a,b,p,x_1$,$\forall i>1,x_i = ax_ +b$。

求最小的$i$滿足$x_i = t$,若無解則輸出-1。

$0\leq a,b,x_1 , t題解:

挺水的一道題,展開之後bsgs即可。

但$a\leq 1$的地方需要特判,還巨複雜,有高中數學題內味了。

複雜度$o(\sqrt)$。

套路:**:

#include#define maxn 200005

#define maxm 500005

#define inf 0x7fffffff

#define ll long long

#define rint register int

#define debug(x) cerr<

namespace

std;

ll p; unordered_map

m;inline ll read()

inline ll pw(ll a,ll b)

inline ll inv(ll x)

inline ll bsgs(ll a,ll b)

intmain()

else

if(a==1

)

else printf("

%lld\n

",(t-x1+p)*inv(b)%p+1

); }

else

else}}

return0;

}//59 38 24 25 5

隨機數生成器

SDOI2013 隨機數生成器

最近小 w 準備讀一本新書,這本書一共有 p 頁,頁碼範圍為 0 sim p 1 小 w 很忙,所以每天只能讀一頁書。為了使事情有趣一些,他打算使用 noi2012 上學習的線性同餘法生成乙個序列,來決定每天具體讀哪一頁。我們用 x i 來表示通過這種方法生成出來的第 i 個數,也即小 w 第 i ...

隨機數生成器

標頭檔案 內容 rand,srand函式和rand max常量 rand max 在windows系統中為32767 在類unix系統中為2147483647 rand 函式返回乙個0 rand max的隨機整數 srand seed 函式 接受unsigned int 型別的引數seed,以see...

MATLAB隨機數生成器

1 rand 生成 0,1 區間上均勻分布的隨機數 基本語法 rand m,n,p 生成排列成m n p 多維向量的隨機數。如果只寫m,則生成m m矩陣 如果引數為 m,n 可以省略方括號。2 randn 生成服從標準正太分布 均值為0,方差為1 的隨機數 基本語法 randn m,n,p,解釋同1...