节目播出时间表排布算法问题

某电视台需要提前一天排出第二天节目播出时间表,已知有四类节目:

A. 每天在固定时间播放的节目(参数是开始播放时间,节目时长),例如:每天晚上 19:00 固定开始播放新闻联播,节目时长30分钟。
B. 广告(参数是广告播出时间段,播出次数),例如:每天上午 10:00 - 11:00 播出nike的广告,广告时长2分钟,播出3次。
C. 不限时节目(参数是节目时长,最少播出次数),例如:每天必须播出“璀璨京华60年”宣传片5次,每次时长1分钟。
D. 空白时段(无参数),每天要求固定留出9段空白时间作为机动时间,每段空白时间为5分钟。

不限时节目必须在广告间播出(可以在两个广告插入一个或多个不限时节目),但是广告之间播出的不限时节目总时长不能超过10分钟。
此外:在为节目分配时间段的同时,会出现一些小的时间段(例如几秒)无法用相应长度的节目来填充,这类时间段我们称之为时间“碎片”。

请问, 在如上条件限制下,如何设计一个算法,能尽可能得到节目排序最优解(时间“碎片”尽可能少,不限时节目和广告尽可能均匀排布,避免出现某时段广告出现频率过高或过低的情形)。


某公司的算法面试题,一头雾水,不知道咋解。

阅读 2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题