將一系列給定數字順序插入乙個初始為空的小頂堆h
。隨後判斷一系列相關命題是否為真。命題分下列幾種:
每組測試第1行包含2個正整數n
(≤ 1000)和m
(≤ 20),分別是插入元素的個數、以及需要判斷的命題數。下一行給出區間[−10000,10000]內的n
個要被插入乙個初始為空的小頂堆的整數。之後m
行,每行給出乙個命題。題目保證命題中的結點鍵值都是存在的。
對輸入的每個命題,如果其為真,則在一行中輸出t
,否則輸出f
。
5 446 23 26 24 10
24 is the root
26 and 23 are siblings
46 is the parent of 23
23 is a child of 10ft
ft思路:小頂堆的建立,和兄弟結點,父子結點,根結點的查詢
#include#include#include#include#include#include#include#include#includeusing namespace std;
#define long long ll
const int maxn = 100 + 5;
vectorv;
int n;
void build(int i)
else
break;
}}void bro(int a,int b)
void son(int a,int b)
void root(int i)
void father(int a,int b)
int main()
while(k--)
else
else
else}}
}}
關於堆的判斷
將一系列給定數字順序插入乙個初始為空的小頂堆h。隨後判斷一系列相關命題是否為真。命題分下列幾種 每組測試第1行包含2個正整數n 1000 和m 20 分別是插入元素的個數 以及需要判斷的命題數。下一行給出區間 10000,10000 內的n個要被插入乙個初始為空的小頂堆的整數。之後m行,每行給出乙個...
關於堆的判斷 (小頂堆)
l2 3 關於堆的判斷 將一系列給定數字順序插入乙個初始為空的小頂堆h。隨後判斷一系列相關命題是否為真。命題分下列幾種 每組測試第1行包含2個正整數n le 1000 和m le 20 分別是插入元素的個數 以及需要判斷的命題數。下一行給出區間 10000,10000 10000,10000 100...
小頂堆 關於堆的判斷
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 分別是插入元素的個數 ...