QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 2048 MB Total points: 100

#14327. Three-Dimensional Embedding

الإحصائيات

图在空间中的嵌入是指将每个顶点放置在空间中的不同点上,并将每条边绘制为连接其两个顶点的简单弧线,使得除公共顶点外,任意两条弧线均不相交。在本题中,我们关注在特定条件下三维空间中的嵌入。

给定一个具有 $n$ 个顶点和 $m$ 条边的简单无向图,这意味着任意一对顶点之间最多只有一条边,且每条边连接不同的顶点。顶点编号从 1 到 $n$,边编号从 1 到 $m$。第 $j$ 条边连接两个不同的顶点 $v_j$ 和 $w_j$。每个顶点关联的边数不超过五条。

请找到该图的一种嵌入方式,使得满足以下所有条件:

  • 每个顶点 $i$ 被嵌入为空间中的点 $(x_i, y_i, 0)$。坐标 $x_i$ 和 $y_i$ 必须是 0 到 400 之间的整数(包含 0 和 400)。所有点必须具有不同的坐标。
  • 每条边 $j$ 被嵌入为一条折线(一系列相连的线段),其端点为顶点 $v_j$ 和 $w_j$ 的嵌入点。折线的每一段必须平行于 $x$ 轴、$y$ 轴或 $z$ 轴。折线的每个节点必须具有 0 到 400 之间的整数坐标(包含 0 和 400)。每条折线的节点数(包括端点)不得超过 30 个。
  • 折线不得自交。不同的折线不得共享任何点,除非它们对应于关联同一个顶点的边。在这种情况下,它们只能共享该公共端点。

输入格式

输入的第一行包含两个整数 $n$ 和 $m$ ($2 \le n \le 1600$, $1 \le m \le 4000$)。接下来的 $m$ 行中,第 $j$ 行包含两个整数 $v_j$ 和 $w_j$ ($1 \le v_j < w_j \le n$)。

输入保证每个顶点关联的边数不超过五条。此外,不存在平行边;即若 $j \neq j'$,则 $(v_j, w_j) \neq (v_{j'}, w_{j'})$ 成立。

输出格式

首先,输出 $n$ 行。第 $i$ 行应包含两个整数 $x_i$ 和 $y_i$,表示顶点 $i$ 嵌入的坐标。然后,输出 $m$ 行,其中第 $j$ 行表示对应于边 $j$ 的折线,格式如下:

$k \ x_1 \ y_1 \ z_1 \ \dots \ x_k \ y_k \ z_k$

其中 $k$ 是节点数,必须在 2 到 30 之间(包含 2 和 30)。点 $(x_1, y_1, z_1), \dots, (x_k, y_k, z_k)$ 是折线的节点。第一个点 $(x_1, y_1, z_1)$ 必须是 $(x_{v_j}, y_{v_j}, 0)$,最后一个点 $(x_k, y_k, z_k)$ 必须是 $(x_{w_j}, y_{w_j}, 0)$。每对连续的点通过一段线段连接以形成折线。每段线段的长度必须为正。两条连续的线段可以具有相同的方向;例如,它们都可以平行于 $x$ 轴。

你输出的嵌入必须满足上述所有条件。

在给定的输入约束下,可以证明至少存在一个有效的输出。如果存在多个输出,接受其中任何一个即可。

说明

你可以在 DOMjudge 上下载一个用于本地测试的命令行工具。该工具的顶部包含解释其用法的注释。

样例

样例输入 1

3 3
1 2
1 3
2 3

样例输出 1

0 0
400 0
0 399
3 0 0 0 100 0 0 400 0 0
4 0 0 0 0 0 200 0 399 200 0 399 0
3 400 0 0 400 399 0 0 399 0

样例说明 1

图 B.1 展示了样例输出所表示的嵌入。

图 B.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.