1、问题
给定无向连通图G 和m 种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。如果有一种着色法使G 中每条边的2 个顶点着不同颜色,则称这个图是m 可着色的。给出所有可能的着色方案;如果不存在,则回答“NO”.
2、解析
回溯法
3、设计
void BackTrack(int i)
{
if(i > pointnum)
{
sum += 1;
printf("方法 %d : ", sum);
for(int j = 1; j <= pointnum; ++j)
{
printf("%d ", x[j]);
}
printf("\n");
return;
}
else
{
for(int j = 1; j <= m; ++j)
{
x[i] = j;
if(IsOk(i))
BackTrack(i + 1);
x[i] = 0;
}
}
}