HH的項鍊 第二彈(莫隊 離線)

2021-09-11 18:30:59 字數 730 閱讀 3162

同樣的我們依舊進行離線並對詢問進行排序,以左端點所在塊為第一關鍵字,以右端點為第二關鍵字。(這樣可以減少大幅度移動次數)

我們以樣例為例:資料1

2343

5編號12

3456

塊號112

233提問:

1.[1,2]

2.[2,6]

3.[3,5]

那麼我們就要兩個移動下標f1,f2。其實位置為0,0

隨著問題的討論而不斷移動。具體為:f1,f2卡l和r,然後cnt[i]記錄第i個數出現了多少次,根據f1和f2的移動加減,對於每個詢問,就回答有多少個cnt不為零就可以啦。

q時間複雜度會不會很大?

a:不會很大,只有在塊移動後才會出現較大的移動,然而隨著塊的增大,塊的移動範圍會越來越小。所以不用擔心時間的問題

**:(這是在luogu上過不了的莫隊qwq)

#includeusing namespace std;

struct mapn

dian[200000+5];

int n,m,k;

bool cmp(mapn a,mapn b)

}void change_x(int &x,int y)

}int main()

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

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

return 0;

}

HH的項鍊 莫隊

hh 有一串由各種漂亮的貝殼組成的項鍊。hh 相信不同的貝殼會帶來好運,所以每次散步完後,他都會隨意取出一段貝殼,思考它們所表達的含義。hh 不斷地收集新的貝殼,因此,他的項鍊變得越來越長。有一天,他突然提出了乙個問題 某一段貝殼中,包含了多少種不同的貝殼?這個問題很難回答 因為項鍊實在是太長了。於...

HH的項鍊(莫隊演算法模版)

include include include include using namespace std int n,m,s int ans 999999 struct stp 999999 int f 999999 a 999999 int cmp const st a,const st b int...

SDOI2009 HH的項鍊 莫隊

hh有一串由各種漂亮的貝殼組成的項鍊。hh相信不同的貝殼會帶來好運,所以每次散步 完後,他都會隨意取出一段貝殼,思考它們所表達的含義。hh不斷地收集新的貝殼,因此,他的項鍊變得越來越長。有一天,他突然提出了乙個問題 某一段貝殼中,包含了多少種不同 的貝殼?這個問題很難回答。因為項鍊實在是太長了。於是...