- 问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个
顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方
案;如果不存在,则回答“NO”。 - 解析首先,使用邻接矩阵存储无向连通图;其次,明确color数组代表的含义:color[n],大小为n,下标肯定代表顶点,里面的值代表这个顶点放的是哪种颜色。还要判断当前顶点和哪些顶点有着色冲突,若有return false;否则return true。将颜色初始化,遍历搜索下一个颜色。根据着色情况输出、处理下一个顶点或回溯。用flag记录下来是否可以着色,如果没有可以着色的方案,输出“NO”。设G有n个顶点,将顶点编号为1,2,…,n,则搜索空间为深度n的m叉完全树,将颜色编号为1,2,…,m,结点<x1,x3,…,xk>(x1,x2,…,xk属于{1,…,m},1<=k<=n)表示顶点1的颜色x1,顶点2的颜色x2,…顶点k的颜色xk。
- 设计
bool OK(int k,int c[]