【发布时间】:2021-01-11 19:35:03
【问题描述】:
我们有n 玩家,其中一些玩家是朋友(如果 John 是 Sara 的朋友,那么 Sara 也是 John 的朋友)。我们想将这些玩家分成两支球队(一支球队也可以是空的!)。如果一个团队中的所有玩家都是朋友,而另一个团队中的每个玩家都是玩家的敌人(而不是朋友),那么该团队可以赢得比赛。给定一个带有n 顶点和m 边的图(每条边都表示友谊),我如何检查我们是否可以拆分顶点以获得获胜的团队?
【问题讨论】:
-
感觉好像少了点什么。因为这太琐碎了。只要把2个朋友放在一个队里,这个队里的每个人都是朋友,所以他们可以赢。
-
@yemre 好吧,实际上它比这更微不足道。空队获胜。一支只有一名球员的球队也是如此。所以甚至不需要找两个人是朋友^^
-
@Paul,是的,你是对的。我想我是想举一个更“自然”的例子。但当然,根据提问者的定义,只有一名或零名球员的球队也会获胜。
-
@yemre OP 没有提到它,但团队规模必须是
n/2才能使问题有意义 -
一个非常合理的结果是他的团队中有一个未连接的节点,并且该节点“赢得”了比赛......