BC 62C題求二叉樹不同節點數的子樹的個數

2021-07-06 08:18:43 字數 589 閱讀 4533

這次只做了倆道題,而且a題wa了2發(然後突然發現僅僅是陣列開小了,hash表要開到2000),b題wa了四發(考慮清楚各種特判就行了),室友和我一起做的,

他以前是搞acm的,但好久不搞了,雖然比賽的時候也只做出倆題,但是排名在我

前面,而且比賽後還做出了第三題沒有看題解,這難道就是智商壓制麼,汗顏啊。

c題其實只要從二叉樹最後面往前遞迴,把陣列加入set,即可實現判重,注意每層的節點數目,和這層前面的節點總數目關係,便於遞迴。

a題**:

#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long

using namespace std;

int a[3000],b[110];

int main()

else

}}int main()

{ ll n;

while(cin>>n)

{s.clear();

get(n);

cout<

完全二叉樹求節點數

如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹中共有4個...

二叉樹 完全二叉樹的節點數

給定一棵完全二叉樹 最後一層所有節點都在最左側,其餘所有層節點數都為2 h 求其節點數。最簡單的方法就是遍歷一遍,把節點數加起來,但時間複雜度太高。以最左邊的路徑長作為二叉樹的高度,對於乙個節點,如果左子樹高度和右子樹高度一樣,說明左子樹為滿二叉樹,此時把其左子樹的節點數計算出來,加入總數,對右子樹...

求二叉樹的葉子節點數目

1.設定乙個輔助計數變數作為葉子數目 2.分別遞迴訪問左右子樹,當結點的左右子樹都為空時,計數變數加1 3.得到計數變數的值即為葉子數目 typedef struct binarynodebinarynode param int leafnum 傳入計數變數的位址,通過指標修改變數的值 leafnu...