bzoj3744 Gty的妹子序列

2021-07-12 05:28:12 字數 1996 閱讀 7796

time limit: 20 sec  

memory limit: 128 mb

submit: 967  

solved: 293 [

submit][

status][

discuss]

我早已習慣你不在身邊,

人間四月天 寂寞斷了弦。

回望身後藍天,

跟再見說再見……

某天,蒟蒻autumn發現了從 gty的妹子樹(bzoj3720) 上掉落下來了許多妹子,他發現

她們排成了乙個序列,每個妹子有乙個美麗度。

bakser神犇與他打算研究一下這個妹子序列,於是bakser神犇問道:"你知道區間

[l,r]中妹子們美麗度的逆序對數嗎?"

請你幫助一下autumn吧。

第一行包括乙個整數n(1<=n<=50000),表示數列a中的元素數。

第二行包括n個整數a1...an(ai>0,保證ai在int內)。

接下來一行包括乙個整數m(1<=m<=50000),表示詢問的個數。

接下來m行,每行包括2個整數l、r(1<=l<=r<=n),表示詢問al...ar中的逆序

對數(若ai>aj且i

l,r要分別異或上一次詢問的答案(lastans),最開始時lastans=0。

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

對每個詢問,單獨輸出一行,表示al...ar中的逆序對數。

41 4 2 3

12 4

2by autumn 分塊

+樹狀陣列

+可持久化線段樹

考慮分塊,f[i][j]表示第i塊的起始位置到第j個點的逆序對數,這個可以用樹狀陣列在o(n*sqrt(n)*logn)的複雜度預處理。

然後對於每次詢問,如果左右端點在同一塊內,樹狀陣列暴力計算。否則找到左端點後面第乙個完整的塊t,f[t][r]直接統計到答案裡,前面剩餘的部分,對於每乙個位置i,我們要求出[i+1,r]中小於a[i]的數的個數,可以用主席樹做。

#include#include#include#include#include#include#define f(i,j,n) for(int i=j;i<=n;i++)

#define d(i,j,n) for(int i=j;i>=n;i--)

#define ll long long

#define pa pair#define maxn 50005

#define maxm 1000005

using namespace std;

int n,m,tot,cnt,ans,block,t;

int a[maxn],s[maxn],num[maxn],rt[maxn],f[250][maxn];

int ls[maxm],rs[maxm],sz[maxm];

pa b[maxn];

inline int read()

while (ch>='0'&&ch<='9')

return x*f;

}void add(int x,int y)

int sum(int x)

void insert(int x,int &y,int l,int r,int val)

int getans(int x,int y,int l,int r,int l,int r)

int query(int x,int y)

ret=f[num[x]+1][y];

f(i,x,num[x]*block) ret+=getans(rt[i],rt[y],1,tot,1,a[i]-1);

return ret;

}int main()

f(i,1,n) insert(rt[i-1],rt[i],1,tot,a[i]);

f(i,1,n) num[i]=(i-1)/block+1;

f(i,1,num[n])

}m=read();

f(i,1,m)

return 0;

}

BZOJ 3744 Gty的妹子序列

第一行包括乙個整數n 1 n 50000 表示數列a中的元素數。第二行包括n個整數a1 an ai 0,保證ai在int內 接下來一行包括乙個整數m 1 m 50000 表示詢問的個數。接下來m行,每行包括2個整數l r 1 l r n 表示詢問al ar中的逆序 對數 若ai aj且i 對每個詢問...

BZOJ3744 GTY的妹子序列

第一行包括乙個整數n 1 n 50000 表示數列a中的元素數。第二行包括n個整數a1.an ai 0,保證ai在int內 接下來一行包括乙個整數m 1 m 50000 表示詢問的個數。接下來m行,每行包括2個整數l r 1 l r n 表示詢問al.ar中的逆序 對數 若ai aj且i對每個詢問,...

bzoj3744 Gty的妹子序列

我早已習慣你不在身邊,人間四月天 寂寞斷了弦。回望身後藍天,跟再見說再見 某天,蒟蒻autumn發現了從 gty的妹子樹 bzoj3720 上掉落下來了許多妹子,他發現她們排成了乙個序列,每個妹子有乙個美麗度。bakser神犇與他打算研究一下這個妹子序列,於是bakser神犇問道 你知道區間 l,r...