時間限制: 10 s
空間限制: 32000 kb
題目等級 : ** silver
題解檢視執行結果
已知乙個二叉樹,判斷它是否為二叉堆(小根堆)
輸入描述 input description
二叉樹的節點數n和n個節點(按層輸入)
輸出描述 output description
yes或no
樣例輸入 sample input
樣例輸入1
1 4 9
樣例輸入2
6 4 9
樣例輸出 sample output
樣例輸出1
yes樣例輸出2
no資料範圍及提示 data size & hint
對於20%的資料 n≤20
對於50%的資料 n≤1000
對於100%的資料 n≤50000,每個節點≤10000
1 #include2 #include3using
namespace
std;
4int a[100000];5
intmain()614
if(n==8)15
19int now=1
,next;
20while(now*2
<=n)
2128 now=next;29}
30 cout<<"
yes";31
return0;
32 }
2977 二叉堆練習1 codevs
題目描述 description 已知乙個二叉樹,判斷它是否為二叉堆 小根堆 輸入描述 input description 二叉樹的節點數n和n個節點 按層輸入 輸出描述 output description yes或no 樣例輸入 sample input 樣例輸入1 1 4 9 樣例輸入2 6 ...
codevs 2977 二叉堆練習1x
空間限制 32000 kb 題目等級 silver 已知乙個二叉樹,判斷它是否為二叉堆 小根堆 輸入描述 input description 二叉樹的節點數n和n個節點 按層輸入 輸出描述 output description yes或no 樣例輸入 sample input 樣例輸入1 1 4 9...
二叉堆部分練習
本練習主要做了幾個工作 1.給定乙個陣列來初始化二叉堆,第一種方法是通過不斷插入,時間複雜度是o nlgn 第二種方法是先把陣列填入二叉堆,再從下標為h size 2的節點開始下濾,這是因為只有下標小於為h size 2才有孩子,從而可以用線性時間完成二叉堆的初始化。2.二叉堆的下濾和上濾,對二叉堆...