天梯賽 HBU訓練營 關於堆的判斷 25分

2021-10-09 00:08:41 字數 1224 閱讀 2567

x is the root:x是根結點;

x and y are siblings:x和y是兄弟結點;

x is the parent of y:x是y的父結點;

x is a child of y:x是y的乙個子結點。

輸入格式:

每組測試第1行包含2個正整數n(≤ 1000)和m(≤ 20),分別是插入元素的個數、以及需要判斷的命題數。下一行給出區間[−10000,10000]內的n個要被插入乙個初始為空的小頂堆的整數。之後m行,每行給出乙個命題。題目保證命題中的結點鍵值都是存在的。

輸出格式:

對輸入的每個命題,如果其為真,則在一行中輸出t,否則輸出f。

輸入樣例:

5 4

46 23 26 24 10

24 is the root

26 and 23 are siblings

46 is the parent of 23

23 is a child of 10

輸出樣例:

ftf

t

理解完全二叉樹(堆)中父結點和子結點編號之間的關係,無論是左孩子還是右孩子,編號/2就是父結點,所以可以根據結點編號進行判斷,根據小頂堆的特性,邊判斷邊插入邊調整,堆中採用下標(編號)從1開始,這樣符合父結點和子結點編號之間的/2關係,便於判斷。關於判斷是哪乙個命題,需要分批次輸入子串,通過命題之間的不同子串或字元,從而確定命題

#include

#include

#include

using

namespace std;

int h[

1005];

int n,m;

void

swap

(int x,

int y)

//建立小頂堆

void

heap()

}}intmain()

for(

int i =

0;i)else

else

if(s==

"parent"

)else}}

return0;

}

天梯賽 HBU訓練營 閱覽室(易錯點)

天梯圖書閱覽室請你編寫乙個簡單的圖書借閱統計程式。當讀者借書時,管理員輸入書號並按下s鍵,程式開始計時 當讀者還書時,管理員輸入書號並按下e鍵,程式結束計時。書號為不超過1000的正整數。當管理員將0作為書號輸入時,表示一天工作結束,你的程式應輸出當天的讀者借書次數和平均閱讀時間。注意 由於線路偶爾...

團體程式設計天梯賽 關於堆的判斷

題意 x is the root x是根結點 x and y are siblings x和y是兄弟結點 x is the parent of y x是y的父結點 x is a child of y x是y的乙個子結點。輸入格式 每組測試第1行包含2個正整數n 1000 和m 20 分別是插入元素的...

關於堆的判斷(25 分)

關於堆的判斷 25 分 將一系列給定數字順序插入乙個初始為空的小頂堆h。隨後判斷一系列相關命題是否為真。命題分下列幾種 每組測試第1行包含2個正整數n 1000 和m 20 分別是插入元素的個數 以及需要判斷的命題數。下一行給出區間 10000,10000 內的n個要被插入乙個初始為空的小頂堆的整數...