bzoj3207 花神的嘲諷計畫I

2021-07-12 02:53:13 字數 2263 閱讀 8138

time limit: 10 sec  

memory limit: 128 mb

submit: 1589  

solved: 575 [

submit][

status][

discuss]

背景

花神是神,一大癖好就是嘲諷大j,舉例如下:

「哎你傻不傻的!【hqz:大笨j】」

「這道題又被j屎過了!!」

「j這程式怎麼跑這麼快!j要逆襲了!」

……描述

這一天dj在給吾等眾蒟蒻講題,花神在一邊做題無聊,就跑到了一邊跟吾等眾蒟蒻一起聽。以下是部分摘錄:

1.「j你在講什麼!」

「我在講***!」

「哎你傻不傻的!這麼麻煩,直接***再***就好了!」

「……」

2.「j你***講過了沒?」

「……」

「那個都不講你就講這個了?哎你傻不傻的!」

「……」

dj對這種情景表示非常無語,每每出現這種情況,dj都是非常尷尬的。

經過眾蒟蒻研究,dj在講課之前會有乙個長度為n方案,我們可以把它看作乙個數列;

同樣,花神在聽課之前也會有乙個嘲諷方案,有m個,每次會在x到y的這段時間開始嘲諷,為了減少題目難度,每次嘲諷方案的長度是一定的,為k。

花神嘲諷dj讓dj尷尬需要的條件:

在x~y的時間內dj沒有講到花神的嘲諷方案,即j的講課方案中的x~y沒有花神的嘲諷方案【這樣花神會嘲諷j不會所以不講】。

經過眾蒟蒻努力,在一次講課之前得到了花神嘲諷的各次方案,dj得知了這個訊息以後欣喜不已,dj想知道花神的每次嘲諷是否會讓dj尷尬【說不出話來】。

第1行3個數n,m,k;

第2行n個數,意義如上;

第3行到第3+m-1行,每行k+2個數,前兩個數為x,y,然後k個數,意義如上;

對於每乙個嘲諷做出乙個回答會尷尬輸出『yes』,否則輸出『no』

8 5 3

1 2 3 4 5 6 7 8

2 5 2 3 4

1 8 3 2 1

5 7 4 5 6

2 5 1 2 3

1 7 3 4 5

noyes

yesyes

no題中所有資料不超過2*10^9;保證方案序列的每個數字<=n

2~5中有2 3 4的方案,輸出no,表示dj不會尷尬

1~8中沒有3 2 1的方案,輸出yes,表示dj會尷尬

5~7中沒有4 5 6的方案,輸出yes,表示dj會尷尬

2~5中沒有1 2 3的方案,輸出yes,表示dj會尷尬

1~7中有3 4 5的方案,輸出no,表示dj不會尷尬

原創 memphis

可持久化線段樹+雜湊

對字串雜湊,然後問題就轉化為每次詢問乙個區間內有沒有某個數,用可持久化權值線段樹解決。

#include#include#include#include#include#include#include#define f(i,j,n) for(int i=j;i<=n;i++)

#define d(i,j,n) for(int i=j;i>=n;i--)

#define ll long long

#define ull unsigned long long

#define maxn 200005

#define maxm 4000005

#define base 233

using namespace std;

int n,m,k,cnt,tot;

int a[maxn],rt[maxm],sz[maxm],ls[maxm],rs[maxm];

ull h[maxn],p[maxn];

mapmp;

inline int read()

while (ch>='0'&&ch<='9')

return x*f;

}void insert(int x,int &y,int l,int r,int val)

bool query(int x,int y,int l,int r,int val)

int main()

f(i,k,n) insert(rt[i-1],rt[i],1,tot,a[i]);

while (m--)

if (query(rt[x+k-2],rt[y],1,tot,mp[tmp])) puts("no");

else puts("yes");

} return 0;

}

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 都是從桶中取...