【发布时间】:2016-02-11 17:32:30
【问题描述】:
我有一群人,每个人都有一个朋友列表和一个敌人列表。我想把它们排成一排(没有桌子上的圆圈),这样最好没有敌人,只有朋友挨着。
输入示例:https://gist.github.com/solars/53a132e34688cc5f396c
我认为我需要使用图形着色来解决此问题,但我不确定如何 - 我认为我必须省略朋友(或敌人)列表以使其更容易并映射到图形。
有谁知道如何解决这些问题并告诉我我是否走在正确的道路上?
代码示例或在线示例也不错,我不介意编程语言,我通常使用 Ruby、Java、Python、Javascript
非常感谢您的帮助!
【问题讨论】:
-
查找“汉密尔顿路径”
-
每个人都会永远是朋友还是敌人,还是你可以无动于衷?你的例子表明可以无动于衷。您必须坐在朋友旁边,还是可以坐在不是敌人的人旁边?
-
如果您没有太多人,我建议您编写一个算法来尝试所有可能的坐席顺序。并在第一个满足所有条件的地方停下来。
-
组有多大?还有……你在维斯特洛开展派对服务吗?
-
感谢你们的帮助,我认为这是正确的方法。 @JeremyWest 你是对的,如果没有条目,它就像一个jocker,所以没关系,如果建模为一个hamiltonian图,这基本上和一个朋友一样。
标签: python algorithm graph graph-algorithm