BZOJ3809 Gty的二逼妹子序列

2022-05-09 16:26:39 字數 2109 閱讀 7890

[bzoj3809]gty的二逼妹子序列

試題描述

autumn和bakser又在研究gty的妹子序列了!但他們遇到了乙個難題。

對於一段妹子們,他們想讓你幫忙求出這之內美麗度∈[a,b]的妹子的美麗度的種類數。

為了方便,我們規定妹子們的美麗度全都在[1,n]中。

給定乙個長度為n(1<=n<=100000)的正整數序列s(1<=si<=n),對於m(1<=m<=1000000)次詢問「l,r,a,b」,每次輸出sl...sr中,權值∈[a,b]的權值的種類數。

輸入

第一行包括兩個整數n,m(1<=n<=100000,1<=m<=1000000),表示數列s中的元素數和詢問數。

第二行包括n個整數s1...sn(1<=si<=n)。

接下來m行,每行包括4個整數l,r,a,b(1<=l<=r<=n,1<=a<=b<=n),意義見題目描述。

保證涉及的所有數在c++的int內。

保證輸入合法。

輸出

對每個詢問,單獨輸出一行,表示sl...sr中權值∈[a,b]的權值的種類數。

輸入示例

10104

4514

1512

1591

2347

9442

5234

75104

4391

1145

9893

3221

6891

4

輸出示例

200

2111

012

資料規模及約定

見「輸入

題解

莫隊 + 樹狀陣列。

不知為何這題還得卡常數。。。

#include #include #include #include #include #include #include using namespace std;

const int buffersize = 1 << 16;

char buffer[buffersize], *head, *tail;

inline char getchar()

return *head++;

}int read()

while(isdigit(c))

return x * f;

}#define maxn 100010

#define maxq 1000010

int n, q, a[maxn], blid[maxn];

struct que

que(int _1, int _2, int _3, int _4, int _5): ql(_1), qr(_2), al(_3), ar(_4), id(_5) {}

bool operator < (const que& t) const

} qs[maxq];

int tot[maxn], ans[maxq];

int c[maxn];

void update(int x, int v)

int query(int x)

int main()

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

sort(qs + 1, qs + q + 1);

int l, r; l = r = tot[a[1]] = 1; update(a[1], 1);

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

while(l > qs[i].ql)

while(r > qs[i].qr)

while(l < qs[i].ql)

ans[qs[i].id] = query(qs[i].ar) - query(qs[i].al - 1); }

for(int i = 1; i <= q; i++) printf("%d\n", ans[i]);

return 0;

}

BZOJ3809 Gty的二逼妹子序列

空間這麼小 然後就莫隊了 不知道三維kd tree能不能過 本來想打bit,結果發現過不了的樣子,因為修改比較多,詢問比較少,所以可以考慮平衡複雜度,用分塊維護 單次修改o 1 詢問o n code include include include include include include in...

bzoj3809 Gty的二逼妹子序列

先說一種很顯然的做法,大體框架肯定是莫隊,然後每來一種顏色就處理下,如果是新出現的就在bit當中把這個位置 1,如果這種顏色消失了就在bit中對應位置 1。這樣的時間複雜度是o nn log 2n 我交了一次發現超時了。那怎麼辦?觀察下,我們查詢和修改的複雜度都是o logn 但是顯然查詢的次數要遠...

bzoj 3809 Gty的二逼妹子序列

autumn和bakser又在研究gty的妹子序列了!但他們遇到了乙個難題。對於一段妹子們,他們想讓你幫忙求出這之內美麗度 a,b 的妹子的美麗度的種類數。為了方便,我們規定妹子們的美麗度全都在 1,n 中。給定乙個長度為n 1 n 100000 的正整數序列s 1 si n 對於m 1 m 100...