codevs天梯四色問題

2021-07-26 12:24:55 字數 1038 閱讀 2087

題目:

給定n(小於等於8)個點的地圖,以及地圖上各點的相鄰關係,請輸出用4種顏色將地圖塗色的所有方案數(要求相鄰兩點不能塗成相同的顏色)

資料中0代表不相鄰,1代表相鄰

分析:

好老的題目,基礎dfs即可

**:const

maxn=10;

vara:array [1..maxn] of longint;

flag:array [1..maxn,1..maxn] of boolean;

n,temp,total:longint;

procedure init;

vari,j:longint;

begin

readln(n);

for i:=1 to n do

for j:=1 to n do

begin

read(temp);

if temp=1 then

flag[i,j]:=true

else

flag[i,j]:=false;

end;

end;

procedure dfs(dep:longint);

vari,j:longint;

begin

if dep>n then

begin

inc(total);

exit;

end;

for i:=1 to 4 do

begin

temp:=0;

for j:=1 to n do

if (j<>dep) and flag[dep,j] and (a[j]=i) then

temp:=1;

if temp=1 then

continue;

a[dep]:=i;

dfs(dep+1);

end;

a[dep]:=0;

end;

begin

init;

dfs(1);

write(total);

end.

codevs黃金 1116 四色問題

題目描述 description 給定n 小於等於8 個點的地圖,以及地圖上各點的相鄰關係,請輸出用4種顏色將地圖塗色的所有方案數 要求相鄰兩點不能塗成相同的顏色 資料中0代表不相鄰,1代表相鄰 輸入描述 input description 第一行乙個整數n,代表地圖上有n個點 接下來n行,每行n個...

codevs 1116 四色問題

題目描述 description 給定n 小於等於8 個點的地圖,以及地圖上各點的相鄰關係,請輸出用4種顏色將地圖塗色的所有方案數 要求相鄰兩點不能塗成相同的顏色 資料中0代表不相鄰,1代表相鄰 輸入描述 input description 第一行乙個整數n,代表地圖上有n個點 接下來n行,每行n個...

Codevs 1116 四色問題(DFS)

題目描述 description 給定n 小於等於8 個點的地圖,以及地圖上各點的相鄰關係,請輸出用4種顏色將地圖塗色的所有方案數 要求相鄰兩點不能塗成相同的顏色 資料中0代表不相鄰,1代表相鄰 輸入描述 input description 第一行乙個整數n,代表地圖上有n個點 接下來n行,每行n個...