如題:
用中繼器(repeater)給每個接受者(receiver)傳送訊號,為了防止訊號干擾,兩個相鄰的廣播站之間的中繼器要不相同。問至少需要多少個中繼器。
等同於個個圖著色,問最少需要幾種顏色使得相鄰頂點顏色不同。
由四色原理:每個平面地圖都可以只用四種顏色來染色,而且沒有兩個鄰接的區域顏色相同。所以最多隻需要4種顏色。(這裡沒用四色原理,用的直接搜素。)
用深搜來做dfs(int v,int colnum)//假設當前以v為頂點 圖可以用從colnum數量的顏色塗滿。然後只需要每深一層v++,最後如果v>n(n是圖總頂點數),表示全部頂點塗色完畢,返回。
#include
#include
using namespace std;
#define n 27
int g[n][n],num,n,isfind=0;
int col[n];
int ok(int v)
}return 1;
}void dfs(int v,int colnum)
for(int i=1;i<=colnum;i++)
}if(!isfind)
}int main()
}isfind=0;
num=1;
dfs(1,1);
if (num == 1)
printf ("1 channel needed.\n");
else printf ("%d channels needed.\n", num);
}return 0;
}
驗證四色原理
問題描述 如圖所示,表示乙個地圖有6個地區,它對應著乙個6 6的鄰接矩陣 見輸出樣例 輸出一種合理的著色方案,要求任意兩個相鄰的地區都不能同色。輸入格式 第1行為n,表示地區個數,n 20。以下為n n的鄰接矩陣,a i j 0表示地區i與地區j不相鄰,a i j 1表示地區i與地區j相鄰。輸出格式...
四色定理 DFS深搜
定義 四色問題的內容是 任何一張地圖只用四種顏色就能使具有共同邊界的國家著上不同的顏色 簡單理解就是 每個平面地圖都可以只用四種顏色來染色,而且沒有兩個鄰接的區域顏色相同 四色定理可以應用於有向圖的衍生問題上 如搜尋暴力可以解決有向圖的連線問題 同時平時wa時要注意long long的使用 在資料上...
Codevs 1116 四色問題(DFS)
題目描述 description 給定n 小於等於8 個點的地圖,以及地圖上各點的相鄰關係,請輸出用4種顏色將地圖塗色的所有方案數 要求相鄰兩點不能塗成相同的顏色 資料中0代表不相鄰,1代表相鄰 輸入描述 input description 第一行乙個整數n,代表地圖上有n個點 接下來n行,每行n個...