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

图的着色算法

发布时间: 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();
}

热点内容
鸟保护脚本 发布:2025-09-19 15:25:46 浏览:48
家庭旧电脑改服务器实用吗 发布:2025-09-19 15:04:14 浏览:154
java查询sql 发布:2025-09-19 14:55:30 浏览:833
surfacelinux 发布:2025-09-19 14:55:30 浏览:310
hix源码 发布:2025-09-19 14:35:21 浏览:63
空调压缩机格力 发布:2025-09-19 14:32:10 浏览:560
服务器地址号段 发布:2025-09-19 14:21:32 浏览:712
安卓系统注册的游戏怎么转到苹果 发布:2025-09-19 14:18:50 浏览:459
无限宝缓存 发布:2025-09-19 13:35:59 浏览:93
linuxzip分卷解压 发布:2025-09-19 13:29:24 浏览:337