📄 地图染色.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)
{
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 + -