问题描述
有人能帮我解决以下问题的最佳方法吗?
假设有 n 个孩子。这些孩子需要分为 组。但是,问题是有几对孩子不 想进同一个组。你能告诉我们最少的组数吗? 必须形成吗?
输入说明:
第一行将包含两个非负整数 n 和 m。那么接下来 m 行将包含两个非负整数,它们是给定的 成对的孩子。
Input:
6 3
1 4
2 3
1 5
Output
2.
Explanation:
(1,2,6),(3,4,5) can be two groups which satisfy all the given conditions.
我发现这可以通过将其转换为在给定数字对之间具有边的图并找到它的色数来解决。寻找比这更好的解决方案。
解决方法
这是 Vertex Coloring 的优化变体。
这个问题是一个已知的NP完全问题(2着色除外),因此对于大图没有已知的有效解决方案。对于小图,您可以尝试回溯和/或分支定界解决方案。