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