給出每個節點的兩個兒子節點,建立一棵二叉樹(根節點為 11),如果是葉子節點,則輸入0 0
。建好樹後希望知道這棵二叉樹的深度。二叉樹的深度是指從根節點到葉子結點時,最多經過了幾層。
最多有 10^6106 個結點。無無
**輸入 **
7
2 73 6
4 50 0
0 00 0
0 0
**輸出 **
4
這道題考察了二叉樹深度,我們進行構造乙個struct節點,然後進行一次dfs,把層級傳入即可得出最終的層數。
#include #include using namespace std;
struct node n[1001000];
int n, root = 0, maxlevel = 0;
bool isroot[1001000] = ;
void dfs(int root, int level)
int main()
while(isroot[root]) root++;
dfs(root, 1);
printf("%d", maxlevel);
return 0;
}
P4913 深基16 例3 二叉樹深度(水題)
給出每個節點的兩個兒子節點,建立一棵二叉樹 根節點為 111 如果是葉子節點,則輸入0 0。建好樹後希望知道這棵二叉樹的深度。二叉樹的深度是指從根節點到葉子結點時,最多經過了幾層。最多有 10610 6106 個結點。無無 輸入 1複製7 2 73 6 4 50 0 0 00 0 0 0 輸出 1複...
洛谷 P4913 二叉樹深度 (二叉樹 dfs)
題目傳送 看題解有大佬有用樹狀dp的,還有說正解是長鏈剖分。我太菜了,上面那些都不會,用dfs遍歷ac了,不知道是不是資料太水讓我水過了。正應了acm圈一句名言 這題我雖然不會,但ac還是沒問題的 先用結構體建樹 struct node tree maxn 輸入 for int i 1 i n i ...
洛谷 P4715 深基16 例1 淘汰賽
有 2 n n le7 2n n 7 個國家參加世界盃決賽圈且進入淘汰賽環節。我經知道各個國家的能力值,且都不相等。能力值高的國家和能力值低的國家踢比賽時高者獲勝。1 號國家和 2 號國家踢一場比賽,勝者晉級。3 號國家和 4 號國家也踢一場,勝者晉級 晉級後的國家用相同的方法繼續完成賽程,直到決出...