【冬季集訓】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 50 2 1 0 1 3 2
1 32 3
1 43 6
2 7
sample output
30324
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...