description
排排坐,吃果果,生果甜嗦嗦,大家笑呵呵。你乙個,我乙個,大的分給你,小的留給我,吃完果果唱支歌,大家樂和和。紅星幼兒園的小朋友們排起了長長地隊伍,準備吃果果。不過因為小朋友們的身高有所區別,排成的隊伍高低錯亂,極不美觀。設第i個小朋友的身高為hi,我們定義乙個序列的雜亂程度為:滿足ihj的(i,j)數量。幼兒園阿姨每次會選出兩個小朋友,交換他們的位置,請你幫忙計算出每次交換後,序列的雜亂程度。為方便幼兒園阿姨統計,在未進行任何交換操作時,你也應該輸出該序列的雜亂程度。
input
第一行為乙個正整數n,表示小朋友的數量;第二行包含n個由空格分隔的正整數h1,h2,…,hn,依次表示初始佇列中小朋友的身高;第三行為乙個正整數m,表示交換操作的次數;以下m行每行包含兩個正整數ai和bi¬,表示交換位置ai與位置bi的小朋友。
output
輸出檔案共m行,第i行乙個正整數表示交換操作i結束後,序列的雜亂程度。
sample input
【樣例輸入】
3 130 150 140
2 2 3
1 3
sample output
1 0
3 【樣例說明】
未進行任何操作時,(2,3)滿足條件;
操作1結束後,序列為130 140 150,不存在滿足ihj的(i,j)對;
操作2結束後,序列為150 140 130,(1,2),(1,3),(2,3)共3對滿足條件的(i,j)。
【資料規模和約定】
對於100%的資料,1≤m≤2*103,1≤n≤2*104,1≤hi≤109,ai≠bi,1≤ai,bi≤n。
hint
source
動態維護逆序對的題
直接分治= =樹套樹什麼的完全不想寫
乙個操作拆分成兩個刪除兩個插入
#include
#include
#include
#include
#include
#define maxn 200100
#define lowbit(x) (x&(-x))
using namespace std;
int n,m,x,y,top,cnt;
int c[maxn],h[maxn],t[maxn];
int ans[maxn];
void in(int &x)
struct query
}q[maxn],newq[maxn];
inline void insert(int id,int
x,int
y,int w)
; q[++top]=(query);
q[++top]=(query);
q[++top]=(query);
q[++top]=(query);
return;
}q[++top]=(query);
q[++top]=(query);
q[++top]=(query);
q[++top]=(query);
q[++top]=(query);
}inline void add(int
x,int delta)
inline int query(int l,int r)
void solve(int l,int r)
int main()
solve(1,top);printf("%d\n",ans[0]);
for (int i=1;i<=m;i++) ans[i]+=ans[i-1],printf("%d\n",ans[i]);
}
bzoj2144 國家集訓隊2011 跳跳棋
跳跳棋是在一條數軸上進行的。棋子只能擺在整點上。每個點不能擺超過乙個棋子。我們用跳跳棋來做乙個簡單的遊戲 棋盤上有3顆棋子,分別在a,b,c這三個位置。我們要通過最少的跳動把他們的位置移動成x,y,z。棋子是沒有區別的 跳動的規則很簡單,任意選一顆棋子,對一顆中軸棋子跳動。跳動後兩顆棋子距離不變。一...
happiness 國家集訓隊2011 吳確
2011中國國家集訓隊命題答辯 高一一班的座位表是個n m的矩陣,經過乙個學期的相處,每個同學和前後左右相鄰的同學互相成為了好朋友。這學期要分文理科了,每個同學對於選擇文科與理科有著自己的喜悅值,而一對好朋友如果能同時選文科或者理科,那麼他們又將收穫一些喜悅值。作為計算機競賽教練的scp大老闆,想知...
國家集訓隊2011 悄悄話
在這個有話不直說的年代,密碼學越來越被廣泛接受。我們引用經典的 凱撒密碼 在英文中,凱撒加密只對26個字母生效 分大小寫 我們按照 a 到 z 來排字母。凱撒加密的原理就是把原文的每乙個字母都按順序往後移k位。這個k將被作為金鑰。a 往後移變成 b z 往後移會變成 a 0 k 25 現在給出一系列...