傳送門
因為 $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 都是從桶中取...