國家集訓隊2011 BZOJ2141 排隊

2021-07-05 09:44:57 字數 1836 閱讀 2244

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 現在給出一系列...