Ural 1106. Two Teams

来源:互联网 发布:安卓免流量软件2017 编辑:程序博客网 时间:2024/06/05 05:33

      一种思路是从按照从1到N的顺序,将还没有被放置的人放置在Team1中,将他的朋友全部放在Team2中,不能分成两组当且仅当有人没朋友。现在,只需要证明,当把一个人放在Team1时,他必然有朋友在Team2中或者未被放置。用反证法证明,如果把一个人I放在Team1时,他的所有朋友都已经把放在Team1了,那么,I就肯定已经被放在Team2里了。与把I放在Team1的条件“还没有被放置”矛盾。

     另一种思路是将每个人看成一个节点,如果两人是朋友,在这两人之间加边,然后按bfs的方式对这个图交叉染色即可。

原创粉丝点击