会场安排问题4-1

本文介绍了一个利用贪心算法解决会场安排问题的方法,该问题实质上是图着色问题的变形。通过排序活动的开始时间,确保每个会场能安排最多的活动。算法首先按开始时间非减序排列,然后用一个变量记录已使用的会场数和每个会场最后安排的活动。通过循环检查新活动能否放入已有会场,从而找到最小会场数的解决方案。附有C语言实现代码。
摘要由CSDN通过智能技术生成

       *问题描述:假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效地贪心算法进行安排(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容的活动间用直线连接。使相邻点有着不同颜色的最小着色数,相应于要找的最小会场数)。

input. txt                output. txt

          5                             3

      1      23

     12     28

     25     35

     27     80

     36     50

    解决这个问题的思路是:我需要得到最小的会场数,那么我最关心的的就是每个活动的开始时间,然后才是结束时间。为什么这样讲呢?因为贪心嘛就是要让每个会场安排尽可能多的活动,当我把开始时间按照非减序列排好后,我就可以可直观的判断当前的这个这个活动属于哪一个会场,并且由于是非减序列而达到“物尽其用”的目的,即每个会场安排尽可能多的活动场次。

这里假设开始时间是已经排好序的,那么接下来应该怎么处理呢?敲打(敲打俺自己一下,提提神)我用一变量num来记录已经安排的会场数,然后用a【num】来记录每个会场最后安排的一次活动的序列号,这样的话,我判断下一个活动该如何安排会场的时候就可以这样:首先看它能不能安排在已有的会

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值