/* 函数功能:求解图着色问题
* 作者 :王宇虹
* 时间 :2015年5月21日 12:02:00.000
* 编译环境:Dev-C++ 5.8.3
*/
#include<iostream>
#include<cstring>
using namespace std;
int n,m,g,i; //n表示无向图中结点个数,m表示颜色个数,g表示结点关系个数
int a[10000][10000]; //只开到结点个数为10000的范围
void NextValue(int k,int m,int* x);
void mColoring(int k,int m,int *x);
void mColoring(int m,int *x);
int main() //主函数
{
memset(a,0,sizeof(a));
cout << "请输入无向图中结点的个数: ";
cin >> n;
cout << "请输入边的条数: ";
cin >> g;
cout << "请输入颜色个数: ";
cin >> m;
int *x = new int[100];
int u, v;
for(i = 0; i < n; i++) x[i] = 0;
for(i = 0; i < g; i++)
{
cout << "请输入边:";
cin >> u >> v;
a[u][v] = a[v][u] = 1;
}
cout << "着色方案: " << endl;
mColoring(m,x);
return 0;
}
void NextValue(int
图着色问题 配色方案 C++实现 回溯法
最新推荐文章于 2024-06-26 14:55:07 发布
本文介绍了如何使用C++编程解决图的着色问题,通过回溯法来寻找有效的颜色分配方案。代码中定义了NextValue函数为节点分配不冲突的颜色,并在mColoring函数中递归地尝试所有可能的着色组合,输出可行的解决方案。
摘要由CSDN通过智能技术生成