2019ACM首爾J題題解

2022-05-22 18:21:12 字數 892 閱讀 8055

給定正n多邊形,現在要你通過頂點連線的方式,將它劃分完全劃分成若干個三角形。我們定義兩個三角形的距離為,兩者相隔的完整的三角形數+1。

如下圖,a與d的距離為3,a與c的距離為2

現在你要讓所有兩兩三角形的距離中,最大距離的最小。求該最小值

(資料範圍n為3-1e6)

這個距離其實就是兩個三角形之間隔離幾條線(包括自身三角形的)

這題首先應該確定劃分方案

由於分割出三角形的數量是一定的,說明線的數量也是一定的

觀察上圖,不難發現,當某點集中了過多的線時,最大距離顯然會很大,所以我們思路應該是讓一定的線,盡量的分散他們的交點位置,如下圖所示

不難發現,下面的劃分方案具有良好的推廣性:

在未被劃分的多邊形內,以逆時針方向,依次選取三個點abc,ac連線

接下來就是求最小值是多少了

依據我們上面這種劃分規則,由於我們取的是最遠距離,所以每多轉一圈,我們肯定多一對線,即距離要+2

值得注意的是,如下圖這種情況,奇數會少一條邊,留給下圈逆時針

接下來只要遞迴計算一下就可以了,要留意遞迴終點。

#include#includeusing namespace std;

int n;

int ans[11]=;

int dfs(int x)

}int main()

《ACM程式設計》 J題

題目描述 給定一組大寫的字元,按照次序每個字母都變換為下乙個字母,如果是z,則變為a。解題思路 本題思路簡單,用字串存貯,之後用字元的相關知識運算。解題細節 輸出全為大寫字母。注意輸出的格式,大小寫還有空格。特別注意相鄰兩組空格兩行。include include include include i...

2019山東ACM省賽補題題解

wandering robot 題意 大體意思就是乙個機械人按照指定的路線走來走去,最後求最遠點和初始點 0,0 的距離 思路 1.確定最遠點 第一次迴圈路徑確定之後,其他的迴圈基本都是在平移,最遠點可能是在最後一次迴圈但是也很有可能在第一次迴圈 2.確定最遠點的位置 k的值特別的大,所以肯定不能用...

2023年湖南acm省賽 I題(2019)

有一顆 n 個點的帶權樹,點的編號是 1,2,n.樹有 n 1 條邊,求樹上兩點之間的距離是2019的倍數的點對有多少?點對距離計數 點分治 點分治關鍵是對cal函式進行修改,其他的基本不用改。如何靈活運用cal函式,主要還是要理解幾個變數的含義。根據點分治的過程,是不斷找重心,然後 1 求出每個點...