// 0522.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#define n 5
static int arc[100][100];
static color[100];
int Ok(int i)
{
for(int j=0; j<n; j++)
if(arc[i][j]==1 && color[i]==color[j])
return 0;
return 1;
}
void ColorGraph()
{
int k=0;
int flag=1; //表示图中还有尚未着色的顶点
while(flag==1)
{
k++;
flag=0;
for(int i=0; i<n; i++)
{
if(color[i]==0)
{
color[i]=k;
if(!Ok(i))
{
color[i]=0;
flag=1;
}
}
}
}
}
int main()
{
cout<<"输入颜色的个数:";
int m;
cin>>m;
cout<<"输入无向图点和边的关系:"<<endl;
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
{
int a;
cin>>a;
arc[i][j]=a;
}
ColorGraph();
for(i=0; i<n; i++)
{
cout<<color[i]<<" ";
}
cout<<endl;
return 0;
}
贪心法之着色问题
最新推荐文章于 2025-05-21 16:17:33 发布