-
问题
有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。
设S={1,2,…,n}为活动的集合,si和fi分别为活动i的开始和截止时间,i=1,2,…,n
定义:活动i和j相容<==>si≥fj或sj≥fi,i≠j
求S最大的两两相容的活动子集A。 -
解析
按结束时间来倒序排列,第一个结束时间最短,肯定是要加进去的,之后的几个,如果开始时间早于前一个的结束时间,则加入活动列表
相容问题
最新推荐文章于 2021-12-11 21:48:28 发布