當前位置:首頁 » 操作系統 » 圖的著色演算法

圖的著色演算法

發布時間: 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();
}

熱點內容
c語言讀取文件並輸出 發布:2024-11-24 11:42:45 瀏覽:622
打開u盤拒絕訪問 發布:2024-11-24 11:32:07 瀏覽:488
資料庫縮略 發布:2024-11-24 10:54:18 瀏覽:598
uniqidphp 發布:2024-11-24 10:54:15 瀏覽:659
linux設備驅動程序pdf 發布:2024-11-24 10:40:26 瀏覽:805
金盾pdf加密提取 發布:2024-11-24 10:37:01 瀏覽:810
sqlserver2005報表 發布:2024-11-24 10:33:23 瀏覽:585
直男Qq密碼一般會設成什麼 發布:2024-11-24 10:28:00 瀏覽:199
蘋果怎麼傳照片藍牙到安卓 發布:2024-11-24 10:21:04 瀏覽:857
比亞迪秦值得買哪個配置 發布:2024-11-24 10:20:23 瀏覽:74