*问题描述:假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效地贪心算法进行安排(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容的活动间用直线连接。使相邻点有着不同颜色的最小着色数,相应于要找的最小会场数)。
input. txt output. txt
5 3
1 23
12 28
25 35
27 80
36 50
解决这个问题的思路是:我需要得到最小的会场数,那么我最关心的的就是每个活动的开始时间,然后才是结束时间。为什么这样讲呢?因为贪心嘛就是要让每个会场安排尽可能多的活动,当我把开始时间按照非减序列排好后,我就可以可直观的判断当前的这个这个活动属于哪一个会场,并且由于是非减序列而达到“物尽其用”的目的,即每个会场安排尽可能多的活动场次。
这里假设开始时间是已经排好序的,那么接下来应该怎么处理呢?(敲打俺自己一下,提提神)我用一变量num来记录已经安排的会场数,然后用a【num】来记录每个会场最后安排的一次活动的序列号,这样的话,我判断下一个活动该如何安排会场的时候就可以这样:首先看它能不能安排在已有的会