2359. [图论基础与应用-第九章]频道分配

当一个广播站向一个很广的地区广播时需要使用中继器,用来转发信号,使得接收器都能接收到足够强的信号。然而,每个中继器所使用的频道必须很好地选择,以保证相邻的中继器不会互相干扰。要满足这个条件,相邻中继器必须使用不同的频道。 由于广播频率带宽是一种很宝贵的资源,对于一个给定的中继器网络,所使用频道数量应该尽可能少。编写程序,读入中继器网络的信息,计算需要使用频道的最少数目。

输入

输入文件包含多个测试数据,每个测试数据描述了一个中继器网络,格式如下。 (1) 第1行为整数N (1≤N≤26),表示中继器的数目,中继器用前N个大写字母表示,例如,假设有10个中继器,则这10个中继器的名字为A, B, C, …, J。 (2) 接下来有N行,描述了这N个中继器的相邻关系,第1行描述和中继器A相邻的中继器,第2行描述和中继器B相邻的中继器,以此类推。每行的格式为“A:BCDH”,表示和中继器A相邻的中继器有B、C、D和H(按字母升序排列)。如果一个中继器没有相邻中继器,则其格式为“A:”。 注意,相邻关系是对称的,A与B相邻,则B也与A相邻;另外,中继器网络是一个平面图,即中继器网络所构成的图中不存在相交的边。 输入文件的最后一行为N = 0,表示输入结束。

输出

对每个中继器网络,输出一行,为该中继器网络所需频道的最小数目。

样例

标准输入 复制文本
2
A:
B:
6
A:BEF
B:ACF
C:BDF
D:CEF
E:ADF
F:ABCDE
0
标准输出 复制文本
1 channel needed.
4 channels needed.
登录以提交代码。
单点时限 1 秒
内存限制 256 MB
提交 0
通过 0