POJ3343 熱血格鬥場 Treap

2021-08-15 14:32:41 字數 1594 閱讀 4995

總時間限制: 

1000ms

記憶體限制: 

65536kb 描述

為了迎接08年的奧運會,讓大家更加了解各種格鬥運動,facer新開了一家熱血格鬥場。格鬥場實行會員制,但是新來的會員不需要交入會費,而只要同一名老會員打一場表演賽,證明自己的實力。

我們假設格鬥的實力可以用乙個正整數表示,成為實力值。另外,每個人都有乙個唯一的id,也是乙個正整數。為了使得比賽更好看,每乙個新隊員都會選擇與他實力最為接近的人比賽,即比賽雙方的實力值之差的絕對值越小越好,如果有兩個人的實力值與他差別相同,則他會選擇比他弱的那個(顯然,虐人必**好)。

不幸的是,facer一不小心把比賽記錄弄丟了,但是他還保留著會員的註冊記錄。現在請你幫facer恢復比賽紀錄,按照時間順序依次輸出每場比賽雙方的id。

輸入第一行乙個數n(0 < n <=100000),表示格鬥場新來的會員數(不包括facer)。以後n行每一行兩個數,按照入會的時間給出會員的id和實力值。一開始,facer就算是會員,id為1,實力值1000000000。輸入保證兩人的實力值不同。

輸出n行,每行兩個數,為每場比賽雙方的id,新手的id寫在前面。

樣例輸入

3

2 13 3

4 2

樣例輸出

2 1

3 24 2

裸的 平衡樹 ,此處用 treap。

附**:

#include#include#include#include#define max 2147483647

using namespace std;

struct node

};node* rt;

inline int read()

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

return date*w;

}inline int abs(int x)

inline void maintain(node* &u)

inline void turn(node* &u,int f)

void insert(node* &u,int x,int k)

int y=x>u->v?1:0;

insert(u->son[y],x,k);

if(u->son[y]->w>u->w)turn(u,y^1);

else maintain(u);

}void front(node* u,int &ans,int &x,int k)

if(u->son[1]!=null)front(u->son[1],ans,x,k);

} else if(u->v>=k)

if(u->son[0]!=null)front(u->son[0],ans,x,k);

}void next(node* u,int &ans,int &x,int k)

if(u->son[0]!=null)next(u->son[0],ans,x,k);

} else if(u->v<=k)

if(u->son[1]!=null)next(u->son[1],ans,x,k);

}int main()

return 0;

}

熱血格鬥場和冷血格鬥場

好的吧,過去很久的題目了,現在補一發。跟格鬥場有仇。每個都提交了十幾次。先摘一下題目。5 熱血格鬥場 描述 為了迎接08年的奧運會,讓大家更加了解各種格鬥運動,facer新開了一家熱血格鬥場。格鬥場實行會員制,但是新來的會員不需要交入會費,而只要同一名老會員打一場表演賽,證明自己的實力。我們假設格鬥...

C 熱血格鬥場(STL map pair

1.題目 描述 為了迎接08年的奧運會,讓大家更加了解各種格鬥運動,facer新開了一家熱血格鬥場。格鬥場實行會員制,但是新來的會員不需要交入會費,而只要同一名老會員打一場表演賽,證明自己的實力。我們假設格鬥的實力可以用乙個正整數表示,成為實力值。另外,每個人都有乙個唯一的id,也是乙個正整數。為了...

openjudge 4 熱血格鬥場

總時間限制 1000ms 記憶體限制 65536kb 描述 為了迎接08年的奧運會,讓大家更加了解各種格鬥運動,facer新開了一家熱血格鬥場。格鬥場實行會員制,但是新來的會員不需要交入會費,而只要同一名老會員打一場表演賽,證明自己的實力。我們假設格鬥的實力可以用乙個正整數表示,成為實力值。另外,每...