集训队作业-reportSubway解题报告_第1页
集训队作业-reportSubway解题报告_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Subway解题报问题简述

在一棵有n(n106个点的树中选出0ln算法分析2k个叶子,所以问题就转化为求一棵树里的最大2k叶,可以贪心每次删掉一条叶子链(使得叶子数-1,用堆就是nlogn。子链长度都<n,用基排+O(n)观察此题,首先分析解的性质结论例如下图,若存在两个链ab,cd,它们之间不交,则可以调换接顺序,变为adbcxy链的连接顺序,使得该解的l条链所组成的图是连通图。 xyxy 设原图中存在着leafnum个叶节点,则对于任意一最优树P,必然拥minleafnum,2l个叶节点。P,该解为一棵叶节点不足minleafnum,2l则该的解l条链中必然存在一条链(记为链ex,将此链两端与其他链重复的无效节点去除后,此链的一端(设为x)为非叶节点,而若将链exx端连向任意最优解,结论得证。xx只存在minleafnum,2l个叶节点。,为了解决这个问题定义一个概念叶链,叶链i表示一条包含叶节点i的(,图)因此的任务可以等价于去除max(0,leafnum2l)个叶链,使这些叶链总叶链叶链叶节点有可能由于删除某些叶链导致其他叶链长度变长。重复这个操作max(0leafnum2l)次即可得出答案,由于每个点最多加入某条叶链一次,因此的总时间复杂度为O(n,而使用堆排的时间复杂度为O(nlogn)间复杂度为O(nlogn)+杂度降为O(n)叶链定义两个叶链具有相关的关系为:这两条叶链拥有相同的叶链顶端容易得知,只有当与叶链ij都被删去,才会导致叶链i其他叶链的长度增加,而不会减少。因此叶链i为当前最短叶链,若不删去它或假设在贪心算法执行过程中,当前最短叶链为叶链i,长度为value[i,选择删去叶链iP,不删去叶链iP'。若在P'中被删除的所有叶链都与叶链i不相关i的存在与否势必不会使其他与叶链i不相关的叶链的长度增加/减小则大可将最后一条被删除的叶链换为叶链i,由于叶链iP劣。而叶链i若与某条被删叶链j相关,由于value[i]val

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论