- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
国家集训队2005-论文集 何林
数据关系的简化
长沙雅礼中学 何林
摘要
数据之间的关系有着和数据本身同等的重要性。最常见的数据关系有线性关系、树关系和图关系。信息学竞赛的本质就是对数据的充分挖掘。然后有时候挖掘太过充分,反而会把问题复杂化。本来将讨论的就是如何通过适当的简化数据关系,实现数据的合理挖掘。
关键字
树,图,序列,数据关系
引言
我们经常面对大量的数据,但是他们之间不是杂乱无章的。一些用道路连接的城市表现出来的数据关系是图;一些行政部门的上司下属关系表现出来的是树关系;学校的成绩排名表现出来的数据关系是线性关系。
图、树和线性关系是我们在生活中、也是在信息学竞赛中遇到的三种最常见的关系。虽然信息学竞赛强调对输入信息的充分挖掘和应用,但有时候关系过于复杂反而让人眼花缭乱。本文就是要介绍一种重要的思想:简化数据结构。具体的说可以把图简化成树、把树简化成线性结构。这看起来不可思议,因为在简化的过程中必然会丢失一些信息,但是通过本文接下来的分析和举证,你又会发现这是切实可行的一种思想。
简化图关系
先来看一个题目:
坐船问题
雅礼中学有n个学生去公园划船。一条船最多可以坐两个人。如果某两个学生同姓或者同名就可以坐在一条船上。
学校希望每个同学都坐上船,但是小船的租用费用很高,学校想要租用最少的船。请问:学校至少要租多少船?
我们可以把每个学生看作一个顶点。如果两个学生同姓,就在两者之间连一条红边;如果他们同名,就在两者之间连一条蓝边。
这样我们就把问题的全部信息都毫无遗漏的包含在这个图里面了。剩下的问题就是求一个最小边覆盖,实际上也就是求最大匹配。
这个图并不一定是二分图,所以求最大匹配涉及到带花树,十分复杂。有没有更好的方法呢?
首先假设这个图是连通的。
下面我们用一棵树来表示这个图。这是一颗二叉树。每个节点的左儿子(如果存在)和它同姓,右儿子(如果存在)和它同名。
构树算法如下:
假设树中已经含有k个点了。如果k=n,那么构造算法结束。否则因为整个图是连通的,剩下的点中至少有一个和当前的树连通。不妨设剩下的某个点P和树中的一个点T之间有边。
第一种情况是P和T同姓。沿着T的左儿子不断的“往左”走,直到到达某一个点X无法继续前进(也就是X没有左儿子)。因为X和T同姓,所以它也必然和P同姓;同时X没有左儿子,令P为X的左儿子即可。这样树的规模就增大了1。
第二种情况是P和T同名。和第一种情况类似。
于是我们总是可以把树的规模增大1,直到把所有的点都包含到树中。
构造出这样一棵树有什么好处呢?下面考虑任意一个叶子节点P,设它的父亲是F。
如果P是F的唯一孩子,那么令P和F坐一条船。树的规模就减小了2。否则F有两个孩子,设另一个孩子是Q。为了方便讨论,不妨设P是F的左儿子,Q是F的右儿子。
第一种情况:F是根节点。
这时候总共有三个学生还没坐船。至少要两条船。令F和P坐一条船,Q坐一条船即可。
第二种情况:F是它父亲的左儿子。设F的父亲是F’。
令F和Q坐一条船。然后把F和Q从树中删除。此时P的左儿子P落了单。因为F和F’同姓,F又和P同姓,所以F’和P同姓。令P为F’的左儿子即可。这就保证了树的连通性。
第三种情况:F是它父亲的右儿子。
和第二种情况类似。见上图。
通过以上算法,可以不断的把树的规模减小。如果树有n个节点,那么最后的结果就是需要条船。毫无疑问这是最优解。
如果图不连通,那么把每个连通图按照上述算法分别处理,最后把船数相加即可。
整个算法的复杂度是O(n),不仅效率上大大优于匹配算法,而且两者的编程复杂度更是不能同日而语。
这个题目的数据是学生,数据关系是同姓或者同名。毫无疑问,用图来表示学生之间的关系是很自然的想法,而且图也的确可以毫无遗漏的把所有信息包含进去。但是正因为图的包罗万象,使得我们束手无策。虽然存在匹配算法,但是它不仅思维、编程复杂度高,而且效率也不尽人意。
在思维的路上转一个弯,我们用一棵二叉树来表现数据关系。尽管有些人之间的信息被忽略了,比如根节点和某个叶子节点可能同姓或者同名、而在树中他们两者之间也许没有直接关联的边;我们反而能够更加有效率的应用这些简化后的数据关系解题。
可见数据和数据关系的利用也不是越充分越好,有时候合理的运用更有效。
下面我们再来看一个例子。
仙人掌图的判定
如果一个有向图:
它是一个强连通图。
它的任意一条边都属于且仅属于一个环。
这个图就称为仙人掌图。
输入一个n个节点,m条边的图(1=n,m=105),请判断它是不是仙人掌图。
为了对仙人掌图有一个感性认识,我们先看下面三个图。
其中a)和c)都不是仙人掌图,因为a)不是强连通的、c)中的红弧同时属于两个圈1(2(3(4(1和1(2(4(1。
b)就是一个仙人掌。直观的说,仙人掌图就是一个一个的圈直接“粘”在一起的图,圈之间没有公共边。
于是我
您可能关注的文档
- 团队激励的方法探讨.doc
- 园丁职业生涯的规划书.doc
- 围绕中心把文章写具体教后反思.doc
- 国中部大队接力赛预赛成绩和决赛班级道次表.doc
- 国五的标准消防车图片价格.docx
- 国产老电影19202007-.pdf
- 园林植物昆虫主要目、科的概述.doc
- 固体物理的的答案.doc
- 固定式液压破碎机技术性能和特点.doc
- 国企领导人员廉洁从业规定的汇编.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)