level 9
诺伊😈😈😈
楼主
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
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;
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]);
readln;
end;
for k1:=1 to n do s[k1]:=0;
try(1);
END.
2014年10月06日 00点10分
1
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
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;
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]);
readln;
end;
for k1:=1 to n do s[k1]:=0;
try(1);
END.