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

圖的著色演算法

發布時間: 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-03-18 03:59:00 瀏覽:325
安卓擴展存儲空間 發布:2025-03-18 03:57:34 瀏覽:8
linuxat沒反應 發布:2025-03-18 03:56:51 瀏覽:580
怎麼看是多少位編譯器 發布:2025-03-18 03:47:32 瀏覽:659
solr索引存儲 發布:2025-03-18 03:46:52 瀏覽:329
縫合演算法 發布:2025-03-18 03:46:06 瀏覽:362
java遍歷二維數組 發布:2025-03-18 03:36:01 瀏覽:410
銳捷源碼 發布:2025-03-18 03:26:55 瀏覽:436
訴訟中止裁定後可否解壓 發布:2025-03-18 03:24:51 瀏覽:128
sqlserver全文搜索 發布:2025-03-18 03:23:58 瀏覽:715