永发信息网

C++中怎样画出中国地图色彩图

答案:2  悬赏:20  手机版
解决时间 2021-03-03 22:51
  • 提问者网友:未信
  • 2021-03-03 14:43
C++中怎样画出中国地图色彩图
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-03-03 15:02
好难啊,大工程,哈哈
全部回答
  • 1楼网友:像个废品
  • 2021-03-03 15:29
从一个省开始,给它涂上任意一种颜色1,遍历它旁边的省份,涂上与已经涂色并于他相邻的省份不同的颜色就行了。 理论上4种颜色就够了.地图的四色问题嘛! 可能会有多组解。用递归(dfs)就可以输出所有解了。 地图着色算法c语言源代码 前面我写了一个地图着色(即四色原理)的c源代码。 写完以后想了一下,感觉还不完善,因为从实际操作的角度来考虑,四种可用的颜色放在旁边,不同的人可能会有不同的选择顺序,另外,不同的人可能会选择不同的城市作为着色的起点,而当时的程序没有考虑这个问题。于是,把程序修改为下面的样子,还请同行分析并指出代码中的不足之处: #i nclude #define n 21 int allcolor[4]; int ok(int metro[n][n],int r_color[n],int current) { int j; for(j=1;j=i) break; } } void main() { int r_color[n]={0}; int t_color[n]={0}; int i; int start; int metro[n][n]={{0}, {0,1,1,1,1,1,1}, {0,1,1,1,1}, {0,1,1,1,0,0,1}, {0,1,1,0,1,1}, {0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1}, {0,1,0,1,0,1,1,1,1,1}, {0,0,0,0,0,0,1,1,1}, {0,0,0,0,0,0,1,1,1,1,0,0,1}, {0,0,0,0,0,1,1,0,1,1,0,0,1,1,1,0,1}, {0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1}, {0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1}, {0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1}, {0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1}}; allcolor[0]=1;allcolor[1]=2;allcolor[2]=3;allcolor[3]=4; start=1; printf("\nall color is:\n"); for(i=0;i<4;i++) printf("%d ",allcolor[i]); go(metro,r_color,20,1); printf("\nfirst method:\n"); for(i=1;i<=20;i++) printf("%3d",r_color[i]); color(metro,t_color,20,start); printf("\nsecond method:\n"); printf("\nand the start metro is:%d\n",start); for(i=1;i<=20;i++) printf("%3d",t_color[i]); } 说是人性化着色,其实还有一个问题没有考虑,那就是操作员跳跃式着色,就像大家玩“扫雷”游戏一样。其实也容易实现,可以像定义选色顺序一样定义着色顺序。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯