L3-009 长城 (30分):几何数学
正如我們所知,中國古代長城的建造是為了抵御外敵入侵。在長城上,建造了許多烽火臺。每個烽火臺都監(jiān)視著一個特定的地區(qū)范圍。一旦某個地區(qū)有外敵入侵,值守在對應(yīng)烽火臺上的士兵就會將敵情通報給周圍的烽火臺,并迅速接力地傳遞到總部。
現(xiàn)在如圖1所示,若水平為南北方向、垂直為海拔高度方向,假設(shè)長城就是依次相聯(lián)的一系列線段,而且在此范圍內(nèi)的任一垂直線與這些線段有且僅有唯一的交點。
圖 1
進一步地,假設(shè)烽火臺只能建造在線段的端點處。我們認(rèn)為烽火臺本身是沒有高度的,每個烽火臺只負責(zé)向北方(圖1中向左)瞭望,而且一旦有外敵入侵,只要敵人與烽火臺之間未被山體遮擋,哨兵就會立即察覺。當(dāng)然,按照這一軍規(guī),對于南側(cè)的敵情各烽火臺并不負責(zé)任。一旦哨兵發(fā)現(xiàn)敵情,他就會立即以狼煙或烽火的形式,向其南方的烽火臺傳遞警報,直到位于最南側(cè)的總部。
以圖2中的長城為例,負責(zé)守衛(wèi)的四個烽火臺用藍白圓點示意,最南側(cè)的總部用紅色圓點示意。如果紅色星形標(biāo)示的地方出現(xiàn)敵情,將被哨兵們發(fā)現(xiàn)并沿紅色折線將警報傳遞到總部。當(dāng)然,就這個例子而言只需兩個烽火臺的協(xié)作,但其他位置的敵情可能需要更多。
然而反過來,即便這里的4個烽火臺全部參與,依然有不能覆蓋的(黃色)區(qū)域。
圖 2
另外,為避免歧義,我們在這里約定,與某個烽火臺的視線剛好相切的區(qū)域都認(rèn)為可以被該烽火臺所監(jiān)視。以圖3中的長城為例,若A、B、C、D點均共線,且在D點設(shè)置一處烽火臺,則A、B、C以及線段BC上的任何一點都在該烽火臺的監(jiān)視范圍之內(nèi)。
圖 3
好了,倘若你是秦始皇的太尉,為不致出現(xiàn)更多孟姜女式的悲劇,如何在保證長城安全的前提下,使消耗的民力(建造的烽火臺)最少呢?
輸入格式:
輸入在第一行給出一個正整數(shù)N(3 ≤ N ≤10
?5
?? ),即刻畫長城邊緣的折線頂點(含起點和終點)數(shù)。隨后N行,每行給出一個頂點的x和y坐標(biāo),其間以空格分隔。注意頂點從南到北依次給出,第一個頂點為總部所在位置。坐標(biāo)為區(qū)間[?10
?9
?? ,10
?9
?? )內(nèi)的整數(shù),且沒有重合點。
輸出格式:
在一行中輸出所需建造烽火臺(不含總部)的最少數(shù)目。
輸入樣例:
10
67 32
48 -49
32 53
22 -44
19 22
11 40
10 -65
-1 -23
-3 31
-7 59
輸出樣例:
2
總結(jié)
以上是生活随笔為你收集整理的L3-009 长城 (30分):几何数学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java--继承--上转型--接口的实践
- 下一篇: 鲜枣课堂文章目录(重新梳理版)