注意的是m代表的是the number of non-leaf nodes 要看清楚題意,一開始把n - m認為是輸入的行數了…
利用vector特性 題意大致是尋找每層葉結點的個數,dfs遍歷這棵樹,遍歷時統計即可。
#include
using
namespace std;
const
int maxn =
110;
struct node
node[maxn]
;int maxdepth =-1
;int leaf[maxn]
;bool vis[maxn]
;void
dfs(
int u,
int depth)
if(node[u]
.child.
size()
==0)for
(int i =
0;i.child.
size()
;i++)}
}int
main
(void
)for
(int i =
0;idfs(1,
0);// printf("%d",maxdepth);
for(
int i =
0;i<=maxdepth;i++
)else
}return0;
}
PAT甲級1004題解 並查集思想改
題目分析 本題開始一直在考慮如何將每乙個節點通過一種合適的資料結構儲存起來 一對多的關係 最後發現借助並查集的思想可以用乙個陣列p,p i 存放i節點的父節點,每次查詢編號為i的節點屬於第幾層且判斷是否有以該點位父元素的節點 判斷該點是否為葉子節點,是則floor 對應層數 由於本題的圖不存在環路,...
PAT甲級題解目錄
寫在前面 9月8號剛參加了第一次pat甲級考試,成績還算是滿意。但是沒有滿分,算是有一點小遺憾,於是打算12月再來一次,但是這次採用佛系備考與吃老本的複習方法 畢竟初試重要啊 為了記錄一下成長歷程和各題要點,順便做乙個部落格題解,也給有需要的戰友們提供乙個參考吧。本部落格純屬個人記錄與經驗分享,不帶...
PAT甲級題解 1021
先判斷有幾個連通塊嗎,因為已經滿足邊的個數等於頂點個數減1所以一定是一棵樹,只要是1.本來用的是優先佇列,最後發現沒過,其實是error k components 少了個s看題目一定要仔細 include using namespace std const int maxn 10100 vector...