題目描述 description
堆是一種常用的資料結構。二叉堆是乙個特殊的二叉樹,他的父親節點比兩個兒子節點要大,且他的左右子樹也是二叉堆。現在輸入一顆樹(用二叉樹的陣列表示,即a[i]的左兒子與右兒子分別為a[2i],a[2i+1]),要求判斷他是否是乙個堆。
輸入描述 input description
乙個整數n,表示結點數。
第二行n個整數,表示每個結點代表的數字
輸出描述 output description
如果是,輸出『yes』
否則輸出『no』
樣例輸入 sample input
1 2 3 4 5
樣例輸出 sample output
no資料範圍及提示 data size & hint
1數字在2^31以內
很洪水的一道題,發出來就是為了證明我還活著。。
惡補一下基礎知識 。堆(也叫優先佇列),是一棵完全二叉樹,它的特點是父節點的值大於(小於)兩個子節點的值(分別稱為大頂堆和小頂堆)。它常用於管理演算法執行過程中的資訊,應用場景包括堆排 序,優先佇列等。
#include #include#include
using
namespace
std;
bool
flag;
int n,i,j,a[103111
];int
main()
}if(flag) cout<<"no"
;
else cout<<"
yes"
;}
codevs 2879 堆的判斷
題目描述 description 堆是一種常用的資料結構。二叉堆是乙個特殊的二叉樹,他的父親節點比兩個兒子節點要大,且他的左右子樹也是二叉堆。現在輸入一顆樹 用二叉樹的陣列表示,即a i 的左兒子與右兒子分別為a 2i a 2i 1 要求判斷他是否是乙個堆。輸入描述 input descriptio...
codevs 2879 堆的判斷
時間限制 1 s 空間限制 32000 kb 題目等級 gold 堆是一種常用的資料結構。二叉堆是乙個特殊的二叉樹,他的父親節點比兩個兒子節點要大,且他的左右子樹也是二叉堆。現在輸入一顆樹 用二叉樹的陣列表示,即a i 的左兒子與右兒子分別為a 2i a 2i 1 要求判斷他是否是乙個堆。輸入描述 ...
2879 堆的判斷
時間限制 1 s 空間限制 32000 kb 題目等級 gold description 堆是一種常用的資料結構。二叉堆是乙個特殊的二叉樹,他的父親節點比兩個兒子節點要大,且他的左右子樹也是二叉堆。現在輸入一顆樹 用二叉樹的陣列表示,即a i 的左兒子與右兒子分別為a 2i a 2i 1 要求判斷他...