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

圖的著色演算法

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

熱點內容
蒲公英路由器伺服器端ip 發布:2025-07-04 15:20:30 瀏覽:678
python學習中 發布:2025-07-04 15:20:26 瀏覽:256
linux查看cuda版本 發布:2025-07-04 15:15:49 瀏覽:44
反編譯瀏覽器 發布:2025-07-04 15:15:45 瀏覽:453
java直播網站源碼 發布:2025-07-04 14:46:35 瀏覽:170
安卓應用市場消費記錄怎麼刪除 發布:2025-07-04 14:39:47 瀏覽:31
知道一個伺服器的ip地址 發布:2025-07-04 14:20:33 瀏覽:598
蘋果7鎖屏密碼怎麼改 發布:2025-07-04 14:04:44 瀏覽:710
P三零是什麼配置 發布:2025-07-04 13:58:41 瀏覽:362
哪個安卓機有長方形home鍵 發布:2025-07-04 13:43:58 瀏覽:861