当前位置:首页 » 操作系统 » 图的着色算法

图的着色算法

发布时间: 2024-10-08 16:08:42

1. 图的着色4个顶点 给了3种颜色 如何给4个顶点着色 使之有连边关系的顶点颜色不同有多少种着色方法 编程解决

设计说明:
1 四个顶点用 0,1,2,3表示,三种颜色用A,B,C表示。
2 输出结果 0 -- ABAC ,表示 从0 顶点向1,2,3 方向着色方案为0-A,1-B,2-A,3-C。有连边 关系但顶点不同颜色。
3 用 char c[4][5]={{'A','B','A','C','\0'},{'B','A','B','C','\0'},{'C','A','C','B','\0'}};
先给出连边不同色三种基本方案,用以简化问题。
4 用三重循环分别模拟确定第一点、输出方案、改变着色方案三个事件。
5 用
t=c[i][i];c[i][i]=c[i][(i+1)%4];c[i][(i+1)%4]=c[i][(i+2)%4];c[i][(i+2)%4]=c[i][(i+3)%4];c[i][(i+3)%4]=t;
实现 ABAC-->BACA 转换,巧妙地解决了‘连边不同色’的算法难题。
程序如下:
#include <stdio.h>
main(void)
{
int i,j,k,n=0;
char c[4][5]={{'A','B','A','C','\0'},{'B','A','B','C','\0'},{'C','A','C','B','\0'}};
char t;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
for(k=0;k<4;k++)
{ printf("%d -- %s\t",k,c[i]); /*(k+3)%4,c[(k+3)%4]);*/
n++; }
printf("\n");
t=c[i][i];c[i][i]=c[i][(i+1)%4];c[i][(i+1)%4]=c[i][(i+2)%4];c[i][(i+2)%4]=c[i][(i+3)%4];c[i][(i+3)%4]=t;
}
printf("\n total = %d",n);
getchar();
}

热点内容
pod内部修改配置如何生效 发布:2024-10-08 20:25:33 浏览:234
重庆服务器托管市场低价云主机 发布:2024-10-08 20:23:39 浏览:361
运维接触源码 发布:2024-10-08 19:55:44 浏览:485
python怎么输出换行 发布:2024-10-08 19:42:19 浏览:416
dhcp服务器源码 发布:2024-10-08 19:42:07 浏览:737
Sql88 发布:2024-10-08 19:01:55 浏览:969
汽车参数配置怎么看干式离合 发布:2024-10-08 18:57:47 浏览:796
编译器设计图 发布:2024-10-08 18:53:36 浏览:189
x7买哪个配置的比较好 发布:2024-10-08 18:48:25 浏览:772
android局域网视频 发布:2024-10-08 18:35:29 浏览:695