?? 地圖染色.c
字號:
#include<stdio.h>
main()
{
int i,j,m=0,n=7;
int color,area,k;
int S[7]; //地圖
int R[100][100]; //矩陣
printf("請輸入區域關系矩陣\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&R[i][j]);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%4d",R[i][j]);
}
printf("\n");
}
S[0]=1; //第一個區域染第一種顏色
area=1; //第二個區域試探染色
color=1; //試探染第一種顏色
printf("S[0]=%4d\n",S[0]);
printf("n=%4d\n",n);
k=1; //已染色區域數
while (area<n)
{
while ((k<n)&&(m<k)&&(S[m]*R[area][m]!=color))
{
m++;
} //判斷此區域與原來的區域染色是否矛盾
if(m<k)
{
color++;
m=0;
} //如果矛盾,換下一種顏色
else //否則,記錄
{
S[area]=color;
area++;
color=1;
k++;
m=0;
}
while(color>4) //顏色數多于4則返回上一種情況
{
area-=1;
k--;
color=S[area]+1;
}
}
printf("\n");
for(i=0;i<7;i++)
printf("S[%d]=%4d\n",i,S[i]);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -