時間限制: 1000 ms 記憶體限制: 65536 kb
提交數: 2511 通過數: 1325
給定一棵樹,輸出樹的根root,孩子最多的結點max以及他的孩子。
第一行:n(結點個數≤100),m(邊數≤200)。
以下m行:每行兩個結點x和y,表示y是x的孩子(x,y≤1000)。
第一行:樹根:root;
第二行:孩子最多的結點max;
第三行:max的孩子(按編號由小到輸出)。
8 74 1
4 21 3
1 52 6
2 72 842
6 7 8
no
#include
using namespace std;
int n,m,tree[
101]=;
int main (
)for
(i=1
;i<=n;i++)}
for(i=
1;i<=n;i++)if
(sum>max)
} cout
1;i<=n;i++
)return0;
}
for
(i=1
;i<=m;i++
)
讀入資料,因為樹的特點:每乙個節點都只有唯一的前驅元素,所以用陣列來的儲存每個子節點的父節點。
for
(i=1
;i<=n;i++
)}
找出根節點,根節點肯定沒有父節點,所以父節點為0的點就是根節點。
for
(i=1
;i<=n;i++)if
(sum>max)
}
找出孩子最多的節點,首先二重迴圈遍歷所有的節點,如果某個子結點儲存的父節點等於一層迴圈遍歷的數,說明二層迴圈遍歷的數是一層迴圈遍歷的數的父節點,子節點數++,最大的節點為maxroot。
cout
1;i<=n;i++
)
列印結果,如果父節點為maxroot,則子結點為最多的那個。 找樹根和孩子
給定一棵樹,輸出樹的根root,孩子最多的結點max以及他的孩子 輸入的第一行為t,表示測試資料的組數。對於每組測試資料的第一行 n 結點數 100 m 邊數 200 以下m行 每行兩個結點x和y,表示y是x的孩子 x,y 1000 對於每組測試資料 第一行 樹根 root。第二行 孩子最多的結點m...
找樹根和孩子
題目描述 給定一棵樹,輸出樹的根 root,孩子最多的結點 max 以及他的孩子。輸入 第一行 n 結點個數 100 m 邊數 200 以下 m 行 每行兩個結點 x 和 y,表示 y 是 x 的孩子 x,y 1000 輸出 第一行 樹根 root 第二行 孩子最多的結點 max 第三行 max 的...
樹 找樹根和孩子
題目描述 給定一棵樹,輸出樹的根root,孩子最多的結點max以及他的孩子 輸入第一行 n 結點數 100 m 邊數 200 以下m行 每行兩個結點x和y,表示y是x的孩子 x,y 1000 輸出第一行 樹根 root。第二行 孩子最多的結點max。第三行 max的孩子。樣例輸入8 7 4 14 2...