暑假 樹狀陣列 F Brainman

2021-07-04 08:49:27 字數 543 閱讀 9029

又是一道逆序數的問題。 

/* 

題意:給出乙個序列,每次只能交換相鄰的2個位置的數,

問最少經過幾次交換可以使得序列遞增

思路:逆序對問題,求每個數後面有多少個數比它小

樹狀陣列+離散化

*/ #include#include#includeusing namespace std;

const int maxn=500005;

int c[maxn],a[maxn],b[maxn],n;

int lowbit(int x)//樹狀陣列模板函式之一

int sum(int i)//樹狀陣列模板函式之一

return s;

}void add(int i,int val)//樹狀陣列模板函式之一

}int main()

printf("scenario #%d:\n",++temp);

printf("%d\n\n",ans);

} return 0;

}

暑假 樹狀陣列 E Stars

題意 給出一些星星的橫座標和縱座標,而且星星的縱座標按非遞減排列,如果縱座標相等,則橫座標按遞增排列,任意兩顆星星不會重合。某一顆星星的level為 這顆星星的左下角 包括x相等但y小,y相等但x小 的星星個數。思路 設定乙個變數m標記它原始的位置,然後按x軸排序,每顆星星的level為 星星原始位...

暑假 樹狀陣列 I Japan

題意 在西邊有m座城市,東邊有n座城市,分別都是從北到南編號依次為1,2,3.n m 要建k條高速公路,每條高速公路分別從西邊的一座城市連線到東邊的一座城市。問 這些高速公路有多少個交叉點。的高速公路有2中情況,1 從西邊編號比x小的城市連線到東邊比y大的城市。2 從西邊 編號比x大的城市鏈結到東邊...

樹狀陣列(暑假選拔)

某天小y家門前突然多出了兩座石塔,這兩座石塔妨礙了小x的出行,現在小x想要破壞這兩座石塔,假設兩座石塔分別由n1與n2塊石頭構成,每一塊石頭都有乙個破壞順序的優先順序,並且保證這兩座石塔中沒有兩塊優先順序一樣的石頭,小x覺得優先順序越高的石頭應該越早破壞掉,小x可以每次從任意一座石塔的塔頂移動一塊石...