4
查找色号
令人惊讶的是,我们在图形着色方面还没有遇到任何挑战! 给定一个无向图,我们可以为每个顶点赋予一种颜色,使得没有两个相邻的顶点共享相同的颜色。实现此目的所需的最小数量的独特颜色χ被称为图形的色数。 例如,以下显示使用最少数量的颜色的有效着色: (在维基百科上找到) 因此,该图的色数为χ= 3。 编写一个程序或函数,给定多个N <16的顶点(从1到N),并给出一个边列表,确定一个图的色数。 只要输入未经过预处理,您就可以接收输入并以任何方便的格式产生输出。也就是说,您可以使用字符串或数组,可以在字符串中添加方便的定界符,也可以使用嵌套数组,但是无论您做什么,扁平化的结构都应包含与以下示例相同的数字(顺序相同)。 您可能不使用内置的图论相关功能(如Mathematica的ChromaticNumber)。 您可能会认为该图没有环(将顶点与其自身连接的边),因为那样会使该图不可着色。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。 例子 您的程序必须至少在合理的时间内解决所有这些问题。(它必须正确解决所有输入,但是较大的输入可能需要更长的时间。) 为了缩短篇幅,在以下示例中,我在一个逗号分隔的列表中显示了边缘。如果愿意,您可以换行或使用一些方便的数组格式输入。 三角形(χ= 3) 3 1 2, 2 3, 1 3 6个顶点的“环”(χ= 2) 6 1 2, 2 3, 3 4, 4 5, 5 6, 6 1 5个顶点的“环”(χ= 3) 5 1 2, 2 3, 3 4, 4 5, …