本课程是从少年编程网转载的课程,目标是向中学生详细介绍计算机比赛涉及的编程语言,数据结构和算法。编程学习最好使用计算机,请登陆 www.3dian14.org (免费注册,免费学习)。
图的涂色问题是为某个图形的某些元素(例如图形的顶点,边,区域)涂上颜色,当然,不是任意涂抹,而是颜色的分配需要满足某些条件的约束。
顶点涂色就是最常见的涂色问题之一。例如:给定m种颜色,找到一种为图形顶点涂色的方案,使得不存在两个相邻顶点,它们使用相同的颜色。
其他常见的图形涂色问题还有边涂色问题:没有相邻的两条边被涂上相同颜色;而面涂色(例如为地图着色)则可以转换为顶点涂色问题。
【色数】将图形G涂色所需的最小颜色数称为色数。
【例题】为以下的图形顶点涂色至少需要多少种颜色,才能使得所有相邻的顶点不会被涂上相同颜色?(答案在文末)。
找到给定图的色数的问题是NP Complete问题(比较复杂,这里先不介绍)。
图形涂色的应用
图形涂色问题在生活和工作中有着大量的应用场景。
1)制定日程/时间表