BZOJ 3207 花神的嘲諷計畫

2022-05-19 08:16:45 字數 912 閱讀 3185

傳送門

因為 $k$ 是固定的,所以我們可以預處理每一段 $k$ 個的序列的雜湊值,那麼對於詢問我們只要判斷區間內是否有此雜湊值即可

顯然主席樹維護,沒了

#include#include

#include

#include

#include

using

namespace

std;

typedef unsigned

long

long

ull;

inline

intread()

while(ch>='

0'&&ch<='

9')

return x*f;

}const

int n=1e5+7,base=1e9+7

;int

n,m,k,a[n];

ull h[n],fac[n],b[n];

inline ull get_h(

int l,int r)

int rt[n],t[n*40],lc[n*40],rc[n*40

],cnt;

void ins(int &o,int l,int r,int pre,int

v)bool query(int &o,int l,int r,int pre,int

v)int

main()

int pos=lower_bound(b+1,b+n+1,now)-b;

if(b[pos]!=now)

if( query(rt[r],1,n,rt[l-1],pos) ) printf("

no\n");

else printf("

yes\n");

}return0;

}

bzoj 3207 花神的嘲諷計畫

題意 給出乙個長度為n的序列,有m個詢問 每次給出乙個區間 l,r 和乙個長度為k的短序列 查詢區間中是否存在這個子串 1 n 100000,1 m 100000,1 k 20 題中所有資料不超過2 10 9 保證方案序列的每個數字 n 題解 這題我讀了好幾遍沒讀懂,看了題解才知道這問的是查詢乙個固...

BZOJ 3207 花神的嘲諷計畫

背景 花神是神,一大癖好就是嘲諷大j,舉例如下 哎你傻不傻的!hqz 大笨j 這道題又被j屎過了!j這程式怎麼跑這麼快!j要逆襲了!描述 這一天dj在給吾等眾蒟蒻講題,花神在一邊做題無聊,就跑到了一邊跟吾等眾蒟蒻一起聽。以下是部分摘錄 1.j你在講什麼!我在講 哎你傻不傻的!這麼麻煩,直接 再 就好...

bzoj3207花神的嘲諷計畫

題意 給定乙個原字串和m個詢問,每次查詢原字串 l,r 內是否包含給定字串s len s 20且len s 相同 sol 考慮hash,將原串沒len s 位hash一次放入桶中,再將每次詢問hash後在桶中查詢 感覺很像rk hash 因為每次 l,r 轉移到 l,r 1 l 1,r 都是從桶中取...