P5018 對稱二叉樹

2022-04-12 03:20:43 字數 901 閱讀 8404

題解

什麼是對稱二叉樹,簡潔一點就是:

任意一棵對稱二叉樹,以根節點為軸,是軸對稱的  (qwq我真的只能解釋道這樣了)

這道題可以用dfs求解

dfs深搜,size[ x ] 記錄以 x 為根的樹的大小(也就是以 x 為根的樹的所有節點的總數)

當前節點左兒子非空,繼續遞迴左兒子,右兒子非空,繼續遞迴右兒子

size[ x ]就等於它自己+左子樹大小+右子樹大小

當我們判斷對稱二叉樹的時候,可以用到乙個check函式

對於當前節點

如果左右子樹都空,那麼一定是對稱二叉樹

如果左右子樹都非空,而且左右兒子權值相等,繼續判斷他左兒子的右兒子和右兒子的左兒子是否相等,以及左兒子的左兒子和右兒子的右兒子是否相等,不斷遞迴check,全部滿足條件才是對稱二叉樹,才有機會成為候選答案

否則的話就不會成為對稱二叉樹了 

luogu P5018 對稱二叉樹

帶權的二叉樹裡找一棵節點數最多的子樹使得權值和結構都對稱 1e6這題最主要的點還是計算時間複雜度 剛看到的時候總是覺得每個點都要再往下找 那麼這個複雜度顯然是n方的 但是實際上是 n n 2 n 2 n 4 n 4 1 複雜度是嚴格的nlogn 另外就是對樹的遞迴的處理 我總是想在乙個遞迴裡做完所有...

樹形結構 思維 對稱二叉樹(洛谷 P5018)

題目描述 一棵有點權的有根樹如果滿足以下條件,則被軒軒稱為對稱二叉樹 二叉樹 將這棵樹所有節點的左右子樹交換,新樹和原樹對應位置的結構相同且點權相等。現在給出一棵二叉樹,希望你找出它的一棵子樹,該子樹為對稱二叉樹,且節點數 最多。請輸出這棵子樹的節點數。注意 只有樹根的樹也是對稱二叉樹。本題中約定,...

Luogu P5018 對稱二叉樹 瞎搞樹 雜湊

我的天。普及組這麼 hard 然後好像沒有人用我的垃圾做法,好像是 o n 但十分的慢,並且極其暴力 qwq 具體來說,就是直接 dfs 求出樹高,然後想像出把原來的樹補成滿二叉樹的形態 震不震驚 qwq 然後對子樹雜湊,同時儲存正向的雜湊值 h1 u 和反向的雜湊值 h2 u 對稱時用 但每次向上...