此题给予 N 个人,并且给予 N 个人互相讨厌的关系,试求能否将 N 个人分成两群,且各群里面的人互相都不讨厌对方。
可以将此题转换成 N 个点,并将互相讨厌的关系当作线连起来,这样题目就可以变成要用两种颜色涂上这些点,且相邻的点不可同色,也就变成了着色问题。(可以将颜色想像成群组的编号,而相邻点不能同色就是因为他们是互相讨厌的关系,故不能在同一个群组内)
着色问题的解法就是先找出一个尚未上色的点,将之填上其中一种颜色,接着利用 DFS 的方式将相邻的点填上另外一种颜色,如果填著填著发现出现了相邻同色的状况,则代表无法用两种颜色来填,也就代表无法将 N 个人分成两群互相不讨厌对方的群组;反之,如果全部的点都可以用这个规则填色,则代表可以用两种颜色来填,也就代表可以将 N 个人分成两群互相不讨厌对方的群组,即得解。