主题TreeProblems.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主题TreeProblems

主題: Tree Problems Tree structures Rooted trees 例題講解: H.90.2, A.615 Binary trees 例題講解: A.536, A.699 Undirected trees 例題講解: A.10459 歷年題目 Trees Rooted trees Terminology Terminology (cont.) Representation parent 陣列: parent[i] 記錄第 i 個 node 的 parent 是哪一個 node children 陣列: children[i] 記錄第 i 個 node 的 children list Representation Children lists 將 children list 集中存在一個陣列內 按照出現順序直接將每個 child 放到 edge 陣列中,並用 sibling 陣列記錄每個 child 在 children list 的下一個 node Children lists (sorted) 將 children list 集中存在一個陣列內 將屬於同一個 parent 的 children list 集中連續放置,每個 node 記住自己的 children list 在 edge 陣列所在的位置及 children 個數 常見的 input 格式 所有 edges 以任意順序輸入,如: (2, 9), (4, 7), (2, 8), (4, 6), (0, 1), (0, 2), (8, 10), (1, 5), (1, 3), (9, 11), (1, 4) 有時候會規定一個 parent 的所有 children 在 children list 中的排列次序,如依 node id 的大小或是出現順序等等 如何整理成可用的 children list? 整理成 list 形式 last-child: last-child[i] 記錄 node i 已出現的 children 中,最後一個在 edge 陣列中的位置 要是又出現 node i 的 child,就可以把 sibling 接起來 整理成連續形式 對 edge 陣列做 sort,可以同時完成連續擺放與符合規定順序兩種效果 整理規則 (sorting) 當兩 edge 的 head (parent) 不同時 head 較小的放在前面 當兩 edge 的 head (parent) 相同時 題目如規定依 child 大小順序,由 tail 決定 題目如規定依出現次序,需記住出現次序加以比較或使用 stable sort 整理成連續次序 (cont.) 需額外記住每條 edge 的 head 以做比較 整理之前 整理之後 例題講解: H.90.2 (.tw/info_race90/finalprogram.pdf) 給予一棵王室的家族樹,同一個父親的兒子年紀是由左到右遞減排序,將王位的繼承順位照順序列出 (包括現任) 繼承規則 當現任國王死後 先考慮其兒子,年紀由大到小 再考慮其弟弟,年紀由大到小 再來是國王父親的弟弟們,年紀由大到小 再來是國王祖父的弟弟們,年紀由大到小 如現任國王為 Charles,則接下來是: William, Edward, Adam, Benjamin, Peter, Chris, Bill Input format 先給予現任國王的名字 再來每次給予一對父子配對,如: Tom John,而且沒有一定的給予順序 同一個父親的兒子們,先出現的年紀較大,如: Tom John Tom Charles 則 John 的年紀 (順位) 大於 Charles 直覺想法 Re-labeling 把不能當作陣列 index 的文字 (或數字),轉換成範圍在 0 ~ n – 1 的 node index 準備一個文字的對應表 (mapping),每看到一個字串,就到表中查詢是否已經出現過,如果出現過就回報對應此字串的 index,否則就新增一筆對應資料 Re-labeling (cont.) Charles Peter Allen Charles William George Tom Charles Edward Tom John George Peter Tom Charles Tom Adam Chris James George Chris Tom Benjamin 例題講解: A.615 (http://acm.uva.es/p/v6/615.html) 給一堆 edge (u, v),代表 u ? v,數量次序不拘,依照下列規則判斷是否為 rooted tree (假設 edge 方向由 pare

文档评论(0)

wyw118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档