每組測試第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
#include using namespace std;
int find(int x,int *heap)
bool siblings(int x,int y,int *heap)
bool child(int x,int y,int *heap)
void print(bool f);
for(int i=1; i<=n; i++) else else }}
}return 0;
}
未完成 7 13 最短工期 25 分
乙個專案由若干個任務組成,任務之間有先後依賴順序。專案經理需要設定一系列里程碑,在每個里程碑節點處檢查任務的完成情況,並啟動後續的任務。現給定乙個專案中各個任務之間的關係,請你計算出這個專案的最早完工時間。首先第一行給出兩個正整數 專案里程碑的數量 n 100 和任務總數 m。這裡的里程碑從 0 到...
未完成 1035 插入與歸併 25 分
根據維基百科的定義 插入排序是迭代演算法,逐一獲得輸入資料,逐步產生有序的輸出序列。每步迭代中,演算法從輸入序列中取出一元素,將之插入有序序列中正確的位置。如此迭代直到全部元素有序。歸併排序進行如下迭代操作 首先將原始序列看成 n 個只包含 1 個元素的有序子串行,然後每次迭代歸併兩個相鄰的有序子串...
關於堆的判斷(25 分)
關於堆的判斷 25 分 將一系列給定數字順序插入乙個初始為空的小頂堆h。隨後判斷一系列相關命題是否為真。命題分下列幾種 每組測試第1行包含2個正整數n 1000 和m 20 分別是插入元素的個數 以及需要判斷的命題數。下一行給出區間 10000,10000 內的n個要被插入乙個初始為空的小頂堆的整數...