雜湊 倍增 Jzoj P5856 01串

2022-07-24 21:09:21 字數 899 閱讀 9522

description

某日,小 q 得到了一種新的生成 01 串的**

給定乙個整數 z,執行 n 次下列語句會得到乙個 01 串

z=[(a*z+c)/k]%m;

if (z

input

第一行五個整數 a, c, k, m, n。

第二行 n 個連續的 01 數字描述 01 串。

output

一行乙個整數表示答案

sample input

3 6 2 9 2

10

sample output

4

data constraint

對於 30%的資料,1<=n,m<=10^3

對於 60%的資料,1<=n<=10^3

對於 100%的資料,1<=n<=10^5,1<=m<=10^6,0<=a,c<=m,1<=k<=m

1 #include2

using

namespace

std;

3const

int mo=1000000007;4

int a,c,k,m,n,mx,ans,mi[1000010],f[1000010][17],g[1000010][17];5

char s[100010];6

intmain()719

for (int j=1;j<=16;j++)

20for (int i=0;i)

2126

for (int i=0;i)

2735

if (l==mx) ans++;36}

37 printf("%d"

,ans);

38return0;

39 }

雜湊雜湊雜湊雜湊

雜湊,是解決字串 實際上是各種類 問題的重要工具,講字串儲存讀取速度降低到了線性,雜湊的用法十分豐富,可以用了進行狀態壓縮等。include include include includeusing namespace std 這與jdk string.hashcode 的函式在足夠大的資料下失配率...

jzoj P1330 迎接儀式

給出乙個不和諧的佇列,用 j 替代 教 z 替代 主 而乙個 j 與 z 組成的序列則可以描述當前的佇列。為了讓教主看得盡量舒服,你必須調整佇列,使得 jz 子串盡量多。每次調整你可以交換任意位置上的兩個人,也就是序列中任意位置上的兩個字母。而因為教主馬上就來了,時間僅夠最多作k次調整 當然可以調整...

jzoj P1331 超級教主

lhx教主很能跳,跳需要消耗能量,每跳1公尺就會消耗1點能量。教主為了收集能量,來到了乙個神秘的地方,教主的正上方每100公尺處就有乙個能量球 也就是這些能量球位於海拔100,200,300 公尺處 每個能量球所能提供的能量是不同的,一共有n個能量球 也就是最後乙個能量球在n 100公尺處 教主為了...