QOJ.ac

QOJ

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

#7676. 導線交叉

Statistics

Moore 定律指出,晶片上的電晶體數量每兩年會增加一倍。令人驚訝的是,這個定律已經持續成立超過半個世紀。每當當前技術無法再容許數量成長,研究人員就會提出新的製造技術,將電路配置得更加密集。在不久的將來,這可能表示晶片將以三維而非二維結構製造。不過,對這道題目而言,二維就足夠了。

所有二維硬體設計(例如晶片、顯示卡、主機板等等)都有一個共同問題:導線配置。在硬體上佈線時,若導線必須互相交叉,就會造成問題。發生交叉時,必須使用特殊裝置,讓兩條電線能夠上下跨越彼此,這會增加製造成本。

我們的問題如下:給定一份硬體設計,其中已有若干導線(全部都是直線段)。另外給定一條待新增連線的起點與終點。你必須求出,為了連接起點與終點,最少需要穿越多少條現有導線。這條連線不必是直線。唯一的要求是,不能在兩條或更多現有導線相接或相交的位置穿越。

problem_7676_432fecdc02e6a53d754fca27d00465e2.png

圖 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.