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

圖的著色演算法

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

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:553
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:837
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:541
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:719
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:643
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:959
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:215
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:71
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:763
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:668