我在 Skiena 的算法设计中遇到了一个问题。我不知道我的解决方案是否正确。
5-18。考虑一组电影 M_1、M_2、.. M_k。有一组客户,每个客户都表示他们想在这个周末看的两部电影。电影在周六晚上和周日晚上放映。可以同时放映多部电影。您必须决定哪些电影应该在周六播出,哪些电影在周日播出,这样每个客户都可以看到他们想要的两部电影。是否有每部电影最多放映一次的时间表?设计一种有效的算法来找到这样的时间表(如果存在)。
解决方案:我们有一组电影{M1,M2..Mk}和一组{C1,C2,..Cp}给客户。我们连接C1想要观看的边缘2电影,连接边缘2电影C2 想看的电影等等。这组电影变成了一个连通图。我想验证它是否是一个二分图,比如不能在同一晚放映 2 部喜欢的电影(将 2 部喜欢的电影用不同的颜色着色) .如果是,我们会在星期六显示所有以第一种颜色着色的电影,在星期日显示第二种颜色的所有电影。问题解决了。但如果不是我该怎么办?