想看的就帮忙看下吧,不知道那出错了
/**********************************************************
5-8 m图着色问题
2011年5月7日9:05:30
记录:
************************************************************/
#include<iostream>
using namespace std ;
class Color
{
private :
int n , //图的顶点数
**a , //图的邻接矩阵
m , //可用着色数
*x ; //当前解
long Sum ; //已找到的可行方案
bool Available (int t) ; //检查颜色的可用性
void Backtrack (int t) ; //m图着色问题核心算法
public :
Color () //默认的构造函数
{
n = m = Sum = 0 ;
}
Color (int n, int m) //带形参的构造函数
{
int i(0), j(0) ;
this ->n = n ;
this ->m = m ;
Sum = 0 ;
x = new int[n+1] ;
a = new int*[n+1] ;
for (i = 1 ; i <= n ; ++i)
a[i] = new int[n+1] ;
for (i = 1 ; i <= n ; ++i)
x[i] = 0 ;
cout <<"请依次输入该图的边的信息......"<<endl ;
for (i = 1 ; i <= n ; ++i)
for (j = 1 ; j <= n ; ++j)
cin >>a[i][j] ;
}
~Color () //析构函数
{
int i(0) ;
delete []x ;
for (i = 1 ; i <= n ; ++i)
delete []a[i] ;
delete []a ;
}
friend int mColoring (int n, int m) ;
} ;
int mColoring (int n, int m) ;
int main()
{
cout <<"请分别输入图的顶点数和颜色种数:" ;
int n(0), m(0) ;
cin >>n >>m ;
int Sum = mColoring (n, m) ;
cout <<"该m着色问题的方案有"<<Sum <<"种!"<<endl ;
return 0 ;
}
int mColoring (int n, int m)
{
Color X(n, m) ;
X.Backtrack (1) ;
return X.Sum ;
}
//m图着色问题核心算法
void Color::Backtrack (int t)
{
if (t > n)
{
int i(0) ;
++Sum ;
for (i = 1 ; i <= n ; ++i)
cout <<x[i] <<' ' ;
cout <<endl ;
}
else
{
int i(0) ;
for (i = 1 ; i <= m ; ++i)
{
x[t] = i ;
if ( Available(t) )
{
Backtrack (t+1) ;
}
x[t] = 0 ;
}
}
}
bool Color::Available (int t)
{
int i (0) ;
for (i = 1 ; i <= n ; ++i)
if ( (a[t][i] == 1) && (x[t] == x[i]) )
return false ;
return true ;
}
问题就是:程序的最后一个函数:Available(int t) 。该函数里面的x[t] 和 x[i] 始终都相等,于是,函数总是返回false
要知道,在类的构造函数里面,我已经把x[i]的值全部初始化为0啦,我cout了一下for 循环里面的x[i] 和 [t],
均相等,等于循环的当前i;
相关推荐
模糊PID不知道哪出错了-Desktop.zip
模糊PID不知道哪出错了-Desktop.zip 请教大神帮忙给看看
微信小程序 合法域名校验出错详解及解决办法
微信小程序 合法域名校验出错详解及解决办法 看下出现错误: 微信小程序开发,遇到这个问题怎么办? 产生原因是因为发起了wx.request请求 而请求的域名没有在微信公众平台后台设置。 1.开发者自己手动设置不检验 不管你有没有拿到App ID ,我相信很多人都会和我一样做一件事,就是二话不说先大概了解下文档,然后直接上github找项目,导入试试。我是这么做的,结果上来就报这个错,后来发现其实可以自己设置本地开发工具不校验域名,完全没有影响。 在“项目”》最后一个选项,勾选之后运行就好了。 2.管理员设置实际项目域名 如果是实际项目开发,那就需要管理员先设置好咯。 设置步骤
解决pycharm运行出错,代码正确结果不显示的问题
今天小编就为大家分享一篇解决pycharm运行出错,代码正确结果不显示的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
出错的正则文本,不知道为什么
怎么就无法用正则匹配这个文本,但是随便去掉或者加几个字却又可以匹配了?难道是我人品问题?
解决Python获取字典dict中不存在的值时出错问题
描述:Python2.7中如果想要获取字典中的一个值,但是这个值可能不存在,此时应该加上判断: 举个例子: t= {} if t.get('1'): # right:这种通过key来查询是否存在的方式是比较好的 print(t['1']) print('right') if t['1']: # wrong:这种直接判断是否存在的方式因为会在判断之前调用,所以会报错 print(t['1']) 额外说明: dict.get(key, default=None) 方法详解: Parameters: key — This is the Key to be searched in the


