luogu 數列找不同 莫隊

2022-04-28 18:15:18 字數 635 閱讀 5121

了解過莫隊的人應該都清楚,莫隊是乙個優化的暴力,可以在相對暴力比較優的時間中,求出一段序列內的某些性質(例:數字的種類)

那麼這道題就明顯是一道模板題了,在l,r(左右段點)移動的過程中,記錄數字的種類,若種類數等於r-l+1,那麼表明沒有重複。

#include #include 

#include

#include

#include

#define n int(1e5+2)

#define m int(1e5+2)

using

namespace

std;

struct

ahahask[n];

intanswer,n,q,a[n],cnt[n],ans[n],k;

bool cmp(ahah a,ahah b)

bool comp(ahah a,ahah b)

void remove(int pos)

void add(int pos)

intmain()

for(int i=1;i<=q;i++)ans[i]==1?printf("

yes\n

"):printf("

no\n");

}

莫隊 P3901 數列找不同

現有數列a 1,a 2,cdots,a na1 a2 an q 個詢問 l i,r i li ri a a cdots,a ali ali 1 ari 是否互不相同 輸入格式 第1 行,2 個整數n,qn,q 第2 行,n 個整數a a cdots,a ali ali 1 ari q 行,每行2 個...

Luogu P3901 數列找不同 (莫隊模版)

傳送門 這是乙個莫隊板子qwq 莫隊是一種離線暴力演算法,每次通過調整當前詢問和上次詢問的區間的不同的左右端點,並修改答案。可以看出,調整的越少跑得越快,所以每次先把詢問的左右端點排個序,按左端點分塊,塊相同的按右端點排序 玄學 如下 include include include include ...

P3901 數列找不同(簡單莫隊)

莫隊入門題目,區間不相同數查詢 應該用線段樹也能做,但是不知道該維護什麼。一篇很好的題解 莫隊演算法主要解決的問題 莫隊演算法是用來處理一類無修改的離線區間詢問問題。莫隊演算法的思想 1 分塊and排序,使相鄰的查詢區間盡量接近,curl和curr兩個指標移動的距離盡量少 2 桶排查找 1 incl...