当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

2745:Network Mess

题目描述
Gilbert is the network admin of Ginkgo company. His boss is mad about the messy network cables on the floor. He finally walked up to Gilbert and asked the lazy network admin to illustrate how computers and switches are connected. Since he is a programmer, he is very reluctant to move throughout the office and examine cables and switches with his eyes. He instead opted to get this job done by measurement and a little bit of mathematical thinking, sitting down in front of his computer all the time. Your job is to help him by writing a program to reconstruct the network topology from measurements.
There are a known number of computers and an unknown number of switches. Each computer is connected to one of the switches via a cable and to nothing else. Specifically, a computer is never connected to another computer directly, or never connected to two or more switches. Switches are connected via cables to form a tree (a connected undirected graph with no cycles). No switches are 'useless.' In other words, each switch is on the path between at least one pair of computers.
All in all, computers and switches together form a tree whose leaves are computers and whose internal nodes switches (See Figure 9).
Gilbert measures the distances between all pairs of computers. The distance between two computers is simply the number of switches on the path between the two, plus one. Or equivalently, it is the number of cables used to connect them. You may wonder how Gilbert can actually obtain these distances solely based on measurement. Well, he can do so by a very sophisticated statistical processing technique he invented. Please do not ask the details.
You are therefore given a matrix describing distances between leaves of a tree. Your job is to construct the tree from it.
输入解释
The input is a series of distance matrices, followed by a line consisting of a single '0'. Each distance matrix is formatted as follows.
N
a11 a12 ... a1N
a21 a22 ... a2N
...
...
...
...
aN1 aN2 ... aNN

N is the size, i.e. the number of rows and the number of columns, of the matrix. aij gives the distance between the i-th leaf node (computer) and the j-th. You may assume 2 <= N <= 50 and the matrix is symmetric whose diagonal elements are all zeros. That is, aii = 0 and aij = aji for each i and j. Each non-diagonal element aij (i != j) satisfies 2 <= aij <= 30. You may assume there is always a solution. That is, there is a tree having the given distances between leaf nodes.
输出解释
For each distance matrix, find a tree having the given distances between leaf nodes. Then output the degree of each internal node (i.e. the number of cables adjoining each switch), all in a single line and in ascending order. Numbers in a line should be separated by a single space. A line should not contain any other characters, including trailing spaces.
输入样例
4
  0  2  2  2
  2  0  2  2
  2  2  0  2
  2  2  2  0
4
  0  2  4  4
  2  0  4  4
  4  4  0  2
  4  4  2  0
2
  0 12
 12  0
0
输出样例
4
2 3 3
2 2 2 2 2 2 2 2 2 2 2

该题目是Virtual Judge题目,来自 北京大学POJ

题目来源 Japan 2005

源链接: POJ-2745

最后修改于 2020-10-29T06:41:23+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
1000 65536