Hz吐泡泡(洛谷 P2171)

2021-09-28 17:47:47 字數 1467 閱讀 8342

題目背景

hz大大是一種可愛的動物(神)。他很喜歡吐泡泡(更喜歡寫作業)。

題目描述

這天,hz大大心血來潮,吐了n個不同的泡泡玩(保證沒有重複的泡泡)。因為他還要寫作業,所以他請你幫他把這些泡泡排序成樹(左子樹<=根《右子樹)。輸出它的後序遍歷。

輸入格式

共2行。

第一行,1個整數n。(1<=n<=300000)

第二行,n個數,代表泡泡的大小。

輸出格式

共2行。

第一行,輸出樹的深度。

第二行,輸出數的後序遍歷。

詳見樣例輸出。

輸入 #1

8

1 4 3 9 10 35 2 7

輸出 #1

deep=523

735109

41

bst(binary search tree);

1.第乙個數為樹的根結點;

2.然後利用&進行建樹,可以邊輸入數邊建樹;&的妙用可以有效的減少指標的使用;

3.發現不同的樹的建樹方式都不太同,線段樹,主席樹,都不太同,要深刻理解;

**:

#include

#define ll long long

#define pa pair

#define lson k<<1

#define rson k<<1|1

#define n 500100

#define m 2000010

using

namespace std;

struct nodetree[

300100];

int nowd;

//插入乙個數後樹的深度

int deep;

//全插入後樹的深度

int root;

//根結點

int cnt;

//結點序號

void

add(

int&k,

int x)

if(x>tree[k]

.w)add

(tree[k]

.r,x)

;//右子樹

else

add(tree[k]

.l,x)

;//左子樹

return;}

void

dfs(

int k)

intmain()

printf

("deep=%d\n"

,deep)

;dfs

(root)

;return0;

}

洛谷 P2171 Hz吐泡泡

hz大大是一種可愛的動物 神 他很喜歡吐泡泡 更喜歡寫作業 這天,hz大大心血來潮,吐了n個不同的泡泡玩 保證沒有重複的泡泡 因為他還要寫作業,所以他請你幫他把這些泡泡排序成樹 左子樹 根 右子樹 輸出它的後序遍歷。輸入格式 共2行。第一行,1個整數n。1 n 300000 第二行,n個數,代表泡泡...

洛谷P2587 ZJOI2008 泡泡堂(貪心)

題目描述 第 x屆noi期間,為了加強各省選手之間的交流,組委會決定組織一場省際電子競技大賽,每乙個省的代表隊由n名選手組成,比賽的專案是老少咸宜的網路遊戲泡泡堂。每一場比賽前,對陣雙方的教練向組委會提交乙份參賽選手的名單,決定了選手上場的順序,一經確定,不得修改。比賽中,雙方的一號選手,二號選手 ...

洛谷P2587 ZJOI2008 泡泡堂 題解

題目傳送門 題目大意 不知道怎麼能夠表述的更簡潔一些。思考過程 具體做法 模擬田忌賽馬,策略是 1.將我方最菜的和敵方最菜的比較,如果我方的比較厲害就 2.將我方最強的和地方最強的比較,如果我方的比較厲害就 3.用我方最菜的換掉地方最強的 上述三條按序號來優先執行,策略正確性不會證2333 incl...