为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

地图四色问题

2017-09-21 3页 doc 13KB 25阅读

用户头像

is_358746

暂无简介

举报
地图四色问题地图四色问题 {问题描述:任何一张地图只要用四种颜色进行填涂,就可以保证相邻省份不同色} program tt; const num=20; var a:array [1..num,1..num] of 0..1; s:array [1..num] of 0..4; {用1-4分别代表RBWY四种颜色;0代表末填进任何颜色} k1,k2,n:integer; function pd(i,j:integer):boolean;{判断可行性:第I个省填上第J种颜色} var k:integer; begin for...
地图四色问题
地图四色问 {问题描述:任何一张地图只要用四种颜色进行填涂,就可以保证相邻省份不同色} program tt; const num=20; var a:array [1..num,1..num] of 0..1; s:array [1..num] of 0..4; {用1-4分别代RBWY四种颜色;0代表末填进任何颜色} k1,k2,n:integer; function pd(i,j:integer):boolean;{判断可行性:第I个省填上第J种颜色} var k:integer; begin for k:=1 to i-1 do {一直从第一个省开始进行比较一直到I省减一的那个省,目的是对已经着色的省份来进行比较,因为>I的省还没有着色,比较没有意义,着色的顺序是先第一、二、三……I个省} if (a[i,k]=1) and (j=s[k]) then {省I和省J相邻且将填进的颜色和已有的颜色相同} begin pd:=false; {即不能进行着色} exit; {退出当前函数} end; pd:=true; {可以进行着色} end; procedure print;{打印结果} var k:integer; begin for k:=1 to n do{将数字转为RBWY串} case s[k] of 1:write('R':4); 2:write('B':4); 3:write('W':4); 4:write('Y':4); end; writeln; end; procedure try(i:integer); var j:integer; begin for j:=1 to 4 do if pd(i,j) then begin s[i]:=j; if i=n then print else try(i+1); {对下一个省进行着色} s[i]:=0; {不能进行着色,将当前状态设置0,即不进行着色} end; end; BEGIN write('please input city number: '); readln(n); writeln('please input the relation of the cities:'); for k1:=1 to n do begin for k2:=1 to n do read(a[k1,k2]); {A[K1,K2]=1表示省K1、K2相邻,为0就不相邻} readln; end; for k1:=1 to n do s[k1]:=0; {把所有的颜色设置为0,即还没有进行着色} try(1); END.
/
本文档为【地图四色问题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索