神奇的題mexII nkoj2691

2021-07-14 22:48:55 字數 1391 閱讀 9448

【冬季集訓】mex ii

time limit:20000ms  memory limit:123456k

case time limit:1000ms

description

在sg定理中,對於乙個由自然數組成的有限集合s,mex定義為不在集合s中的最小自然數,例如mex=3,mex=0. 

給你乙個長度為n的非負整數序列,定義mex(l,r)=mex. 

現有q個詢問,每次提問mex(l,r)的值.

input

第一行兩整數n,q, 

第二行n個整數,第i個數為ai

接下來q行每行兩個數為一次提問。

output

對每次提問輸出一行,為這次提問的答案。

sample input

7 5

0 2 1 0 1 3 2

1 32 3

1 43 6

2 7

sample output

303

24

hint

1<=n<=200000 

1<=q<=200000 

0<=ai

<=200000 

source

bzoj 3339

#include#include#include#include#include#include#include#define inf 1e9

using namespace std;

const int maxn=200005;

priority_queue,greater>q;

int mex[maxn];

int s[maxn];

int last[maxn],_next[maxn];

bool mark[maxn];

struct node;

node tree[maxn*4];

struct node2;

node2 query[maxn];

bool cmp1(node2 a,node2 b)

mex[i]=mex[i-1];

while(q.size()&&mex[i]==q.top())

} for(i=1;i<=m;i++)

sort(query+1,query+1+m,cmp1);

for(i=n;i;i--)

int l=1;

for(i=1;i<=m;i++){

int a=query[i].a;

while(l

神奇的字串 包含26個字母

pg 如果乙個字串包含了所有的字元 a到z,不區分大小寫 那麼我們就說這是乙個神奇的字串。現在,給你乙個由大寫和小寫字母組成的字串,判斷其是否為神奇的字串。input 第一行包含乙個整數n 1 n 100 表示字串的長度。第二行包含字串,該字串只包含大寫和小寫字母。output 如果是神奇的字串,就...

無聊的switch題,神奇的小想法

今天上c語言課要求使用switch語句做題 題目很無聊 輸入若干個成績 80為優秀 60 80為通過 60為失敗 更坑爹的是 請用switch語句完成以上問題 乍一看,這是一道純粹的if else題,很不方便用switch,畢竟switch語句不支援這種條件的判斷。老師用了一種很無聊的不想解釋的做法...

Python 每日一題 156 神奇的6174

6174是個神奇的數字,乙個任意的四位正整數 全相同的除外,如1111 將數字重新組合成乙個最大的數和最小的數相減,重複這個過程,最多七步,必得6174。現在程式設計驗證此現象,輸入乙個每位數不完全相同的四位正整數,給出計算過程,最終得到6174,例如 輸入2687 列印8762 2678 6084...