QOJ.ac

QOJ

Limite de temps : 2 s Limite de mémoire : 2048 MB Points totaux : 100

#7676. 导线交叉

Statistiques

摩尔定律指出,芯片上的晶体管数量每两年就会翻一番。令人惊叹的是,这条定律在过去半个多世纪里一直成立。每当现有技术不再允许进一步增长时,研究人员就会提出新的制造技术,以将电路封装得更加密集。在不久的将来,这意味着芯片可能会在三维空间而非二维空间中构建。但对于本题而言,二维空间已经足够了。

所有二维硬件设计(例如芯片、显卡、主板等)中一个常见的问题是布线。当导线在硬件上布线时,如果它们必须相互交叉,就会产生问题。当发生交叉时,必须使用特殊的装置来允许两条电线相互跨越,这会增加制造成本。

我们的问题如下:给定一个已经布好若干导线的硬件设计(所有导线均为直线段)。同时给定需要连接的新导线的起点和终点。你需要确定为了连接起点和终点,最少需要跨越多少条现有的导线。这条连接线不必是直线。唯一的限制是它不能在两条或多条导线已经汇合或相交的点处交叉。

图 L.1:第一个样例输入

图 L.1 展示了第一个样例输入。八条现有的导线形成了五个正方形。新连接的起点和终点分别位于最左侧和最右侧的正方形中。黑色虚线表示直接连接会跨越四条导线,而最优解仅跨越两条导线(蓝色曲线)。

输入格式

输入包含一组测试用例。第一行包含五个整数 $m, x_0, y_0, x_1, y_1$,分别表示预先存在的导线数量($m \le 100$)以及需要连接的起点和终点坐标。接下来有 $m$ 行,每行包含四个整数 $x_a, y_a, x_b, y_b$,描述一条从 $(x_a, y_a)$ 到 $(x_b, y_b)$ 的非零长度现有导线。每个输入坐标的绝对值小于 $10^5$。每对导线最多只有一个公共点,即导线不会重叠。新导线的起点和终点不在任何预先存在的导线上。

输出格式

输出连接起点和终点所需跨越的导线的最少数量。

样例

样例输入 1

8 3 3 19 3
0 1 22 1
0 5 22 5
1 0 1 6
5 0 5 6
9 0 9 6
13 0 13 6
17 0 17 6
21 0 21 6

样例输出 1

2

样例输入 2

1 0 5 10 5
0 0 10 10

样例输出 2

0

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.