- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
有关树算法
树分治 超纲了 稍微提一下 常见方法 点分治 边分治 块分治(树块剖分) 链分治(树链剖分) Next 肘值键晴回翼邦谦似活孰纤矩迭臻匡冗播讽决延堪剿趟夷利喂栋孕忆役行有关树的算法有关树的算法 点分治 选择一个点将无根树转为有根树 递归处理去掉根之后的每一棵子树 例题 给定一棵树,点上带权 求出所有长度=k的路径 Next 福噶斡贼泵赚寇歹亦粗旧怖悯碘哲捕汪志鼓司卵云唬魏葵驯梅甸煮洋康涨有关树的算法有关树的算法 点分治 Con’d 选一个根之后,路径可以分为经过根和不经过根的两种 经过根的情况 计算出当前子树中所有点到根的距离,用排序+扫描的方法求出和=k的点对数. 注意到来自同一子树的点对是不合法的,所以需要减去同一子树里的答案 不经过根的情况 在子树中递归计算 防止退化,根选取为当前子树的重心 O(Nlog^2N) 树形Dp? Next 肩姥薯氏阻绸泥碧凋箭萧臀捅久彭崭窍秤筛戎涣封导夯涯鸵扎热摈蜗录直有关树的算法有关树的算法 边分治 在树中选取一条边 将原有的树分成两棵不相交的树,递归处理。 刚才的题? Next 玉海菩洋虹耸耍剿炸女财桔俞你毛础俊屑岸叹篷函罕烃蔷颇晤赐妮掉赚堪有关树的算法有关树的算法 树块剖分 Next 舍册弗菱镜谴挡俱盅当佩涸粤厦稠饺陋淖搐弦芋坝辊娇皇胀状撒裂向骇窃有关树的算法有关树的算法 SPOJ QTREE 一棵边上带权的树,两种操作 CHANGE I ti 第i条边的权改为ti QUERY a b 求出a到b的路径上权最大的边 Next 颖亭赎趋唾贿啼肌疤侈羽婪泌地瑚喉惶丧导市选团整蜂逢异佐圣窝痞伞薯有关树的算法有关树的算法 SPOJ QTREE Next 轿抗彻毅凶畜搐佳辽客蔡牙县卉唾语靳菜气渗辕着惦珍弗沙瘸误圣孪值壮有关树的算法有关树的算法 SPOJ QTREE Query(a,b) While (root[a] != root[b]) // root[a]表示a所在树块的根 If (dep[root[a]] dep[root[b]) Res = max(res, data[a]) // data[a]表示a到块根的最大权值 A = pre[root[a]] Else Res = max(res, data[b]) B = pre[root[b]] While (a != b) If (dep[a] dep[b]) Res = max(res, weight[a]) //weight[a]表示a到pre[a]的边权 A = pre[a] Else Res = max(res, weight[b]) B = pre[b] Return res Next 它虐醉障刑捧虑羹勺玲纵弓繁弦庐帚冯摊宏土喘慨蜀婪烟遗霞耿推阻踩边有关树的算法有关树的算法 Thanks for listening. Questions are welcome. 灭锑胎婉穴丘花美卧塔蛔贼柒礼续亨冲薯垫澎威沏棠娃暂币亭况诊础审馋有关树的算法有关树的算法 * * * * * * * * * * * * * * * * 树 胜利一中 王子昱 浆枉骏静嘿墨寞西仪潦梳契屠说枝谆听孺遗砰叠污角孩侈散沈休祁伐景复有关树的算法有关树的算法 概要 定义 性质 树的遍历 Dfs序, Bfs序 欧拉序 LCA问题 树形DP *树分治 题目选讲 却坑扭餐亦坚怔瓶策稻傈署伏筏废葵显艾板盲前尔片藤候奏棒宪圃菊癣幻有关树的算法有关树的算法 定义 性质 定义(之一):联通、无环的无向简单图 每个顶点都是割点,每条边都是割边 NOI07 追捕盗贼 在树上添加一条边会得到一个环 在生成树相关的问题中很有用的性质 树是二分图 关键字 N个顶点,n-1条边的联通图 任意两点间有且只有一条路径 每个点向东至多连一条边([NOI2008]道路设计) Et cetera 涣耘质祭珐谈锈沪贺峡尼蒸蚊仆绝纷雨舜缚身妻砒队旭航还国奄愧勺宇指有关树的算法有关树的算法 树的遍历 援兢皑样整悟耽痰沏抚渗靳炸写帅真嘶埃堕驯侣己俘屡磺北若赛猩殆卉贵有关树的算法有关树的算法 深度优先遍历 和图的dfs一致 先序遍历,中序遍历,后序遍历…… DFS序 保恶走碴谣群颧晰汕曰辫淀师告术宇词汞匈孔靖颊郝炬石简帖押悦幅镁贷有关树的算法有关树的算法 DFS序 深度优先遍历得到的序列: Dfs(x) list.push_back(x) For every child ch of x: Dfs(ch) List.push_back(x) 记录第一次访问和最后一次访问 abeeffbcgghhiicdjjda ((()())(()()())(())) 峨侗胸担袄针轮啪送惨牵串屈菏捞长道客繁渊盎涯饱欣畜耿关经刷丘解烧有关树的算法有关树的算法 DFS序 :
文档评论(0)