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

2022-05-02 15:24:11 字數 1033 閱讀 4063

莫隊入門題目,區間不相同數查詢

應該用線段樹也能做,但是不知道該維護什麼。

一篇很好的題解:

莫隊演算法主要解決的問題:

莫隊演算法是用來處理一類無修改的離線區間詢問問題。

莫隊演算法的思想:

1、分塊and排序,使相鄰的查詢區間盡量接近,curl和curr兩個指標移動的距離盡量少

2、桶排查找

**:

1 #include 2

using

namespace

std;

3 typedef long

long

ll;4

const

int maxn=1e5+5;5

6int

n,m,blo;

7int ans=0

,curl,curr,cnt[maxn];8//

the initial values of curl and curr both are 0

9struct

nodeq[maxn];

12int

a[maxn];

13int

ans[maxn];

1415

bool

cmp(node x,node y)

1819

void add(int

pos)

2223

void del(int

pos)

2627

28int

main()

3637 sort(q+1,q+1+m,cmp);

3839

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

4849

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

5054

return0;

55 }

莫隊 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 個...

模板 莫隊 P3901 數列找不同

目錄 模板 莫隊 p3901 數列找不同 傳送門沒有專門的模板,就把這道題作為模板啦 聽說這題有o n 預處理,o 1 詢問的方法,但是這不重要,還是先練練莫隊吧 演算法競賽 高階指南 裡面沒有專門講莫隊,學得就有一丟丟麻煩 簡單說,莫隊就是 優雅的暴力 首先要注意 莫隊是離線演算法 我們把詢問分成...

洛谷 P3901 數列找不同 莫隊

題目描述 現有數列 a1,a2,a na 1,a 2,ldots,a n a1 a2 an q qq 個詢問 li ri l i,r i li r i 詢問 ali ali 1,ari a a ldots,a ali ali 1 ar i 是否互不相同。輸入格式 第一行,兩個整數 n,q n,qn,...