压去冗余缩得精华 - Read.DOCVIP

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

压去冗余 缩得精华 ——浅谈信息学竞赛中的“压缩法” 安徽 周源 摘要 在信息学竞赛中,我们经常遇到这样一类问题:数据规模大,或是数据间的关系复杂,总而言之即输入数据的信息量过大。 作者在综合分析了很多信息学竞赛试题后,提出了“压缩法”这个概念:即压去输入数据中的冗余信息,保留下对解决问题有帮助的精华部分。压缩法在信息学竞赛中有着广泛的应用,但在各类问题中却有看起来截然不同的表现形式,本文即将选择多道有代表性的例题,提炼它们的共同点,提出压缩法适用问题的两个要点。最后,作者将在总结部分着重分析压缩法的工作特点,认为压缩法是在化归思想的基础上,加上了“信息化”的因素,通过合理的利用信息达到化简问题的目的。 关键字 信息学竞赛 压缩法 冗余/精华信息 可压缩性 替代法则 化归思想 信息化 目录 压去冗余 缩得精华 1 ——浅谈信息学竞赛中的“压缩法” 1 摘要 2 关键字 2 目录 3 引子 4 压缩法的定义 4 压缩法的简单实例 4 [例一]多源最短路问题(经典问题) 4 [例二]球队问题(经典问题) 5 压缩法的要点 7 1. 可压缩性 7 2. 替代法则 7 [例三]模方程组的替代法则(经典问题) 7 压缩法的应用 8 [例四]欧元兑换(BOI 2003) 8 [分析] 9 [动态规划的矛盾] 9 [压缩法化解矛盾] 10 [小结] 12 [例五]合并数列问题(ZOJ p1794 Merging Sequence Problem改编) 12 [分析] 13 [观察压缩要点] 13 [寻找可压缩性:第一阶段压缩] 14 [寻找可压缩性:第二阶段压缩] 16 [贪心法解题] 17 [小结] 17 总结 18 附录 19 附录一:关于[例四]中的斜率优化法 19 附录二:论文附件 19 附录三:关于MergeSequence.pas程序的输入格式 20 参考文献 20 引子 可能不少同学都对题目中“压缩法”这个名词感到很陌生,不错,因为这是作者自己发明的一个名词(。这篇论文就将带领大家走近我所说的“压缩法”,熟悉“压缩法”。 看到“压缩”二字,可能有的同学会想到我们常用的压缩软件,如WinZip, WinRAR等等,他们都是想尽办法的减小文件占用的空间来为我们服务。这正是压缩一词的本义,即“加以压力,以减小体积、大小、持续时间、密度和浓度等”。 然而本文中要讨论的“压缩法”的含义则为:“除去冗余信息,留下精华,以减小问题的规模”,看得出,这正是为信息学竞赛量身定制一种好方法。 下面,就让我们看看压缩法在竞赛中的精彩表现吧! 压缩法的定义 一般来说,当我们处理问题时常常遇到一个集合S,S内部各个元素之间的关系对问题的结果不造成影响,而且也不会受到外部因素的干扰,那么我们可以将S看作一个内外隔绝的包裹(package),忽略包裹内部的冗余信息,并将这个包裹与外部事物的联系保留,打包、压缩后作为一个新的元素存储下来以供以后分析处理。 这就是压缩法工作的基本流程,其好处在于略去了包裹内部种种纷扰却无用的信息,从而化简了问题,进而用更好的方法去解决问题。 压缩法的简单实例 其实我们对压缩法并不陌生,相信大家对下面两个例子都有一定的了解。 [例一]多源最短路问题(经典问题) 如下图。在一个加正权的有向图G = {V, E}中,给出源的位置,求源到其余所有点的最短路长度。与一般最短路问题不同的是,本题中源是一个集合S中的所有点。而S到某一个点p的最短距离等于S中所有点与p最短距离的最小值。 图 1 [分析] 这道题目的关键在于有多个源,而为了提高效率,只能执行一次Dijkstra算法。 其实这是很简单的,很多不同的方法都可以做到这一点。下面让我们看一看压缩法是怎么实现的: 可以看出,由于不可能有一条最短路径从一个源点出发却又经过另外一个源点,因此源点集合S中任何两点间的连边关系对答案都没有影响。如上文所述,可以将S视为一个内外隔绝的“包裹”,舍去包裹内的冗余信息,并将其“压缩”成为一个新的点PS。 另一方面,我们还需要保留S中节点对外的连边情况作为压缩后节点PS的对外连边。 这样,我们就成功的完成了压缩流程,得到的是一张新图和一个单源最短路问题:这正是Dijkstra所做的。 图 2 [例二]球队问题(经典问题) 给出某个篮球队的球员通讯图G = {V, E}如下,若存在有向边(u, v)表示球员u可将消息及时告诉v,若教练想将一条紧急消息告知给全体队员,利用这个通讯图,他至少要亲自通知几个队员? 图 3 [分析] 看着这个杂乱无章的通讯图,我们决定还是使用压缩法“压去”一些不必要的关系,简化题设条件。 分析图中的每一个强连通分量S,若S中的某一个球员得知了消息,那么显然S中其他所有的队员都可以及时获得消息。即S中每一个球员是否得知消息

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档