数据结构应用-田径赛的时间安排
2006-03-24 10:17
786 查看
假设某校的田径选拔赛共设六个项目的比赛,即跳高、跳远、标枪、铅球、100米和200米短跑,规定每个选手至多参加三个项目的比赛。现有五名选手报名比赛,选手所选择的项目如参赛选手比赛项目表所示。现在要求设计一个竞赛日程安排表,使得在尽可以短的时间内安排完比赛。
(1)为了能较好地解决这个问题,首先应该选择一个合适的数据结构来表示它。2表示该问题的数据结构模型图如右下图(图中顶点代表竞赛项目,在所有的两个不能同时进行比赛的项目之间连上一条边)。显然同一个选手选择的几个项目是不能在同一时间内比赛的,因此该选手选择的项目中应该两两有边相连。
(2)竞赛项目的时间安排问题可以抽象为对无向图进行"着色"操作:即用尽可能少的颜色去给图中每个顶点着色,使得任意两个有边连接的相邻顶点着上不同的颜色。每一种颜色表示一个比赛时间,着上同一种颜色的顶点是可以安排在同一时间内竞赛的项目。由此可得:只要安排4个不同的时间竞赛即可。时间1内可以比赛跳高(A)和标枪(C),时间2内可以比赛跳远(B)和铅球(D),时间3和时间4内分别比赛100米(E)和200米(F)。
解决问题的一个关键步骤是,选取合适的数据结构表示该问题,然后才能写出有效的算法。
(1)为了能较好地解决这个问题,首先应该选择一个合适的数据结构来表示它。2表示该问题的数据结构模型图如右下图(图中顶点代表竞赛项目,在所有的两个不能同时进行比赛的项目之间连上一条边)。显然同一个选手选择的几个项目是不能在同一时间内比赛的,因此该选手选择的项目中应该两两有边相连。
(2)竞赛项目的时间安排问题可以抽象为对无向图进行"着色"操作:即用尽可能少的颜色去给图中每个顶点着色,使得任意两个有边连接的相邻顶点着上不同的颜色。每一种颜色表示一个比赛时间,着上同一种颜色的顶点是可以安排在同一时间内竞赛的项目。由此可得:只要安排4个不同的时间竞赛即可。时间1内可以比赛跳高(A)和标枪(C),时间2内可以比赛跳远(B)和铅球(D),时间3和时间4内分别比赛100米(E)和200米(F)。
解决问题的一个关键步骤是,选取合适的数据结构表示该问题,然后才能写出有效的算法。
相关文章推荐
- 大家都说是水题。。好吧,那我就从水题开始做。。自己独立的做。正好最近在辅导大二的数据结构,自己也加强下对栈的理解和应用。 第一次那么完全的独立完成OJ的题,激动呐!读题目理解就废了我好多的时间,虽说英语过了
- Win10(GWX)升级应用 提供一次额外确认已安排升级时间选项
- 数据结构上机时间第三周项目4—顺序表应用
- 数据结构--算法(时间复杂度和空间复杂度)
- 算法与数据结构——时间复杂度验证:最大子序列问题 Max Subsequence Sum
- 数据结构—时间与空间复杂度
- 时间类应用
- 合理安排时间
- 获取Android应用的初次安装时间,版本号等信息
- 【数据结构】栈应用之进制转换
- 数据结构、算法与应用——C++语言描述
- 算法和数据结构 第一章:算法的时间复杂度
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
- Linux应用编程之时间编程
- uplodify 上传插件与My97时间插件综合应用(时间判断,表单button提交)
- 【数据结构】对数运行时间算法(折半查找、最大公约、幂运算)
- 托业阅读时间怎么安排【zhasite】
- 数据结构应用实例#栈#迷宫寻路
- 安卓应用启动时间测试
- 如何合理安排测试时间