牛客練習賽 68

2021-10-09 10:07:05 字數 3230 閱讀 7471

n,q

≤105

,0≤a

i

ai互不

相同

n,q≤10 ^5,0≤a in,

q≤10

5,0≤

aiai​互

不相同後面兩個條件非常重要,通過後面兩個條件將問題轉化為乙個區間內最小未出現的自然數就等於不在這個區間內最小出現的自然數對於區間[l,

r]

[l,r]

[l,r

]只需要算出[1,

l−1]

和[r+

1,n]

[1,l-1]和[r+1,n]

[1,l−1

]和[r

+1,n

]區間最小出現的自然數即可。直接預處理字首字尾注意邊界由於0≤a

i<

n0\leq a_i0≤

ai​<

n只需讓pre[0]=suc[n+1]=n即可

//o(n)

#include

#include

#include

using

namespace std;

const

int n=

100010

;int a[n]

,pre[n]

,suc[n]

;int n,q;

intmain()

return0;

}

由於日常眼瞎非常容易看不見上述重要條件,因此不如上優雅暴力——莫隊

//o(nsqrt(n))

#include

#include

#include

using

namespace std;

const

int n=

100010

;int cnt[n]

,sz,pos[n]

;struct node

}q[n]

;int a[n]

,n,m;

int ans[n]

,res;

void

add(

int k)

void

sub(

int k)

intmain()

for(

int i=

1;i<=m;i++

)sort

(q+1

,q+1

+m);

int l=

1,r=0;

for(

int i=

1;i<=m;i++

)for

(int i=

1;i<=m;i++

) cout<<<

'\n'

;return0;

}

發現當 n

≥199999

n \geq 199999

n≥1999

99時答案必為000。

於是我們只需要預處理 n

<

199999

n < 199999

n<19

9999

的答案即可。

預處理字首和和字首積直接算答案。

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n=

200010

;const ll mod=

199999

;ll s1[n]

,s2[n]

;string p=

"199999"

;void

init()

intmain()

reverse

(a.begin()

,a.end()

);int base=

1,n=0;

for(

auto t:a)

cout<<<

'\n';}

return0;

}

不難看出所求就是通過長度不大於l的邊相互可達點的數量

對於大於l的邊我們可以看作無這條邊,我們用並查集維護連通塊點的數量。

把詢問和邊放在一起排序然後處理即可

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n=

100010

,m=500010

;struct node

}e[2

*m];

int n,m;

int q[m]

,k;ll ans[m]

,now;

unsigned

int sa, sb, sc;

int lim;

unsigned

intrng61()

void

gen(

)for

(int i =

1; i <= k; i++)}

int p[n]

,sz[n]

;int

find

(int x)

intmain()

sort

(e+1

,e+1

+m+k)

;for

(int i=

1;i<=m+k;i++)}

else

ans[e[i]

.id]

=now;

} ll res=0;

for(

int i=

1;i<=k;i++

) res^

=ans[i]

; cout<'\n'

;return0;

}

牛客網的題目感覺挺不錯的,但是評測機就很讓人落淚啊

要加油哦~

牛客練習賽68 A 牛牛的Mex

傳送門給乙個0 n 1的排列,q個詢問,詢問區間的mex。mex定義為最小未出現的自然數。我們隊三個人看到這題第一反應上莫隊,jhlp哈哈哈哈 然後掏出莫隊板子火速a了 我是賽後再來回顧的,發現由於這題陣列比較特殊是有更符合這道題背景的做法的。首先考慮莫隊做法 莫隊的話首先要對詢問區間排個序,然後主...

牛客練習賽9

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 珂朵莉想每天都給威廉送禮物,於是她準備了n個自己的本子 她想送最多的天數,使得每天至少送乙個本子,但是相鄰兩天送的本子個數不能相同 珂朵莉最多送幾天禮物呢 第一行乙個整...

牛客練習賽15

時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 第一次期中考終於結束啦!沃老師是個語文老師,他在評學生的作文成績時,給每位學生的分數都是乙個小於10的非負小數。amy 8.99999999999999999999...