nyoj 945 Just do it 莫隊演算法

2021-07-23 08:45:54 字數 1225 閱讀 1444

時間限制:

2000 ms  |  記憶體限制:

65535 kb

難度:4 描述

螞蟻終於忍受不了宇宙總部要回地球了,它叮囑我不要再編它的故事了,

有啥事直接說,有啥問題直接問就好了,它相信大家都能替他解決的,

畢竟都解決了不少問題了。

好,這次就直接說問題

求乙個序列的某個區間中出現了多少不相同的數字。對於乙個序列會詢問很多很多次。

輸入第一行乙個整數t,表示t組資料 (t < 10)

每組資料第1行乙個整數 n 表示第2行有 n 個整數ai (n <= 30000, 1 <= ai <= 1000000)

第3行乙個整數 m 表示有 m 次詢問的區間(m <= 200000)

第4行開始往後m行每行兩個整數a b,表示詢問的區間[a,b] (1 <= a <= b <= n)

輸出每組資料m行,輸出表示結果

樣例輸入

1

51 1 2 1 3

31 5

2 43 5

樣例輸出

3

23

提示 huge inpiut ,please use scanf to read.

解題思路:區間問題,而且又沒有更新,莫隊演算法正適合處理這類情況,如果比較熟悉莫隊的話就是水題啦。。

#include#include#include#include#include#includeusing namespace std;

const int maxn = 300005;

const int maxm = 200005;

int n,m,block,a[maxn],res[maxm];

int map[1000005];

struct node

}q[maxm];

void solve()

while(l < q[i].l)

while(l > q[i].l)

while(r < q[i].r)

while(r > q[i].r)

res[q[i].id] = ans;

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

printf("%d\n",res[i]);

}int main()

solve();

} return 0;

}

94計票統計

題目描述 請實現介面 unsigned int addcandidate char pcandidatename 功能 設定候選人姓名 輸入 char pcandidatename 候選人姓名 輸出 無 返回 輸入值非法返回0,已經新增過返回0 新增成功返回1 void vote char pcan...

聊聊近況9 4

開發學習基本陷入了停滯,上個月boss派了其他的工作,不過已經快快快的快做完了。又是一年國慶時,今年大大小小的單位合唱表演一家挨一家。本單位也擺脫不了,本來不用去了,但是原來參加的人退下來了,被迫參與進去,個人感覺每天還是有點占用時間,不然工作還能趕趕進度。最近生活上發生的瑣事雜事煩事挺多,一件又一...

網頁設計 9 4

文字外觀屬性 1.color屬性 用於定義文字的顏色,其取值方式有如下3種 預定義的顏色值,如red,green,blue等。十六進製制,如 ff0000,ff6600,29d794等。實際工作中,十六進製制是最常用的定義顏色的方式。rgb 如紅色可以表示為rgb 255,0,0 或rgb 100 ...