C/C++ 编程代写
当前位置:以往案例 > >案例计算机科学Computer Science数据结构相关C++题目:求最小划分子集
2017-11-01

题目:求最小划分子集

划分子集问题

问题描述:已知集合A={a1,a2,……an},及集合上的关系R={ (ai,aj) | ai,aj∈A, i≠j},其中(ai,aj)表示ai与aj间存在冲突关系。要求将A划分成互不相交的子集A1,A2,……Ak,(k≤n),使任何子集中的元素均无冲突关系,同时要求分子集个数尽可能少。

测试数据:

元素集合A={1,2,3,4,5,6,7,8,9}

冲突关系集合R={ (2,8), (9,4), (2,9), (2,1), (2,5), (6,2), (5,9),

(5,6), (5,4), (7,5), (7,6), (3,7), (6,3) }

参考框架:

#define N 10

bool testColor(R,m)

{//利用栈测试能否对关系图R,采用m种颜色着色,使得冲突的元素(相邻的区域)着上不同颜色

}

int findMin(bool R[N][N])

{

for (int m=1;m

if (testColor(R,m)==true)

return m;

return N;

}

int main()

{//构造测试数据,调用findMin,并打印结果

}

要求一:利用参考框架求出最小划分子集数量

要求二:增加测试用例

要求三:求出最小划分各个子集的元素,并打印输出

要求四:三月二十九实验课交本子



在线提交订单