QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#17976. 树上移动

Statistiques

给定一棵由 $N$ 个顶点和 $N - 1$ 条边组成的树 $T$,顶点编号为 $1$ 到 $N$,边编号为 $1$ 到 $(N - 1)$。

你需要将 $T$ 的所有顶点移动到 $D$ 维整数网格 $\mathbb{Z}^D$ 上的点。顶点移动到的点必须满足以下条件。

  • 设移动后顶点 $i$ 的新位置为 $(x_{i,1}, x_{i,2}, \dots, x_{i,D})$。$x_{i,j}$ 是一个整数。
  • 设顶点 $i$ 和顶点 $j$ 之间的距离 $\text{dist}(i, j)$ 为从顶点 $i$ 到顶点 $j$ 的路径上的边数。
  • 对于所有 $1 \le i < j \le N$,必须满足 $|x_{i,1} - x_{j,1}| + |x_{i,2} - x_{j,2}| + \dots + |x_{i,D} - x_{j,D}| = \text{dist}(i, j)$。

求满足上述条件移动树的顶点所需的最小维度 $D$,并给出一种具体的移动方案。

输入格式

第一行包含一个整数 $N$,表示树的顶点数。($2 \le N \le 2\,000$)

接下来的 $N - 1$ 行中,第 $i$ 行包含两个空格分隔的整数,表示由边 $i$ 连接的树的两个顶点。

输出格式

第一行,输出可以移动树顶点的最小维度 $D$。

然后从第二行开始输出 $N$ 行。这些行中的第 $i$ 行必须包含 $D$ 个整数 $x_{i,j}$。($1 \le j \le D$)

$x_{i,j}$ 表示顶点 $i$ 移动到的点的第 $j$ 维坐标值,且必须满足 $-10^9 \le x_{i,j} \le 10^9$。

如果存在多种满足条件的移动方案,输出其中任意一种即可。

样例

输入样例 1

5
1 2
1 3
1 4
1 5

输出样例 1

2
0 0
-1 0
1 0
0 -1
0 1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.