BZOJ3744 GTY的妹子序列

2021-08-21 09:57:54 字數 1155 閱讀 4382

第一行包括乙個整數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對每個詢問,單獨輸出一行,表示al...ar中的逆序對數。

4   

1  4  2  3   

1   

2 4求區間逆序對……

連修改都沒有,水題!

我們記f[i][j]為i~j塊的總逆序對數,處理散塊的時候除了+另一端的貢獻,記得把整塊的貢獻加上~

#includeusing namespace std;

const int n = 5e4+10,maxsiz = 233;

#define inc(i,l,r) for(register int i=(l);i<=(r);++i)

#define red(i,r,l) for(register int i=(r);i>=(l);--i)

int n,q,a[n];

int siz,bl[n];

int sum_bigger[maxsiz][n];//1~i個塊大於等於我的個數

int sum_smaller[maxsiz][n];//i~n個塊小與等於的個數

int f[maxsiz][maxsiz];//塊與塊的逆序對總個數

struct suffix

inline int sum(int x)

}sf;

inline void disc()

inline void init()

inc(i,1,n)++sum_smaller[bl[i]][a[i]];

red(i,bl[n],1)

//n√nlogn

inc(i,1,bl[n])

f[i][j]=ret;

} }}int las_ans;

inline int query(int l,int r)else

return las_ans=ret;

}inline void solv()

}int main()

bzoj3744 Gty的妹子序列

time limit 20 sec memory limit 128 mb submit 967 solved 293 submit status discuss 我早已習慣你不在身邊,人間四月天 寂寞斷了弦。回望身後藍天,跟再見說再見 某天,蒟蒻autumn發現了從 gty的妹子樹 bzoj372...

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的妹子序列

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