#P16986. [NWERC 2018] Circuit Board Design

[NWERC 2018] Circuit Board Design

背景

译自 NWERC 2018 C 题。

题目描述

你被 Nano Wiring Efficient Route Company(NWERC)聘用,帮助他们设计新的电路板。电路本身已经设计好了,你的任务是想出一种方法,把这些电路印制到公司买来的空白电路板上。

更具体地说,每个电路设计由若干连接点以及它们之间的一些连接构成,使得得到的图是连通的且没有环,也就是说,这个图是一棵树。

你可以把连接点放在电路板上的任意位置,并用焊接方式连接它们,使得任意两条连接线不会相交(除了在连接点处相交)。你订购的电路板相当大,因此不用担心空间不够。你的焊接精度非常高,可以认为连接线和连接点都是无限细的。

这本来会很容易,然而你的老板坚持要求每条连接都必须是一条长度恰好为 1 mm1\text{ mm} 的直线(他说这是为了确保电子不需要绕弯,否则会损害设计效率)。

你很快意识到和他争论不会有结果。最快的解决办法就是按照他的要求重新蚀刻一个设计。

输入格式

输入包括:

  • 一行一个整数 nn2n10002\le n\le 1000),表示连接点数量。连接点编号为 11nn
  • 接下来 n1n-1 行,每行包含两个整数 a,ba,b1a,bn1\le a,b\le n),表示 aabb 之间有一条连接。

保证这些边描述的是一棵合法的树。

输出格式

输出 nn 行,第 ii 行包含两个实数 xi,yix_i,y_i,表示点 ii 的坐标。为了保证生产可行,输出必须满足以下限制:

  • 任意两个点之间的距离至少为 10410^{-4}
  • 每条边的长度必须为 11,允许绝对误差不超过 10610^{-6}
  • 不共享端点的两条边之间的距离至少为 10610^{-6}
  • 坐标绝对值不得超过 30003000

如果存在多种合法方案,你可以输出任意一种。

5
1 2
1 3
1 4
1 5
0.0000000 0.0000000
1.0000000 0.0000000
-1.0000000 0.0000000
0.0000000 1.0000000
0.0000000 -1.0000000
5
2 1
3 1
2 4
2 5
40 40
40.7071067812 40.7071067812
41 40
41.7071067812 40.7071067812
40 41.4142135624

提示

【数据规模与约定】

具体限制见输入格式。