zoj 3203 Light Bulb 計算幾何

2021-09-30 12:08:22 字數 755 閱讀 9728

題意是給定如圖的h,h,d,求最大的影子l。

如圖所示,設x,y。

由三角形相似得,x / y = h / (y + d) 。

解得:y = x * d / (h - x)。

由三角形相似得,x / y = h / (y + l -x)。

帶入y,解得 l = x + d * (h - x) / (h - x)。

對l 求一階導數,並令l 』 = 0,得:

x = h +- sqrt(d * (h - h))。

因為 x 必定小於 h, 所以 x = h - sqrt(d * (h - h))。

當 x <= 0 及 x >= h 時,不符合實際意義。

當:x <= 0,帶入計算, 即 h * h <= d * (h - h),由相似三角形ans = h / h * d。

當:x >= h,帶入計算, 即 h - h >= d,得最大時即為人靠牆時,ans = h。

本題也可以用三分做,但是三分還不大理解。

計算幾何**:

#include #include int main()

else if (h * h <= d * (h - h))

else

printf("%.3lf\n", ans);

}return 0;

}

萌新三分講解 基礎題ZOJ3203 三分凸性

舉凸性函式的例子 首先我們一定要明確問題 求極值,這裡是極大值。如圖,第一種情況下 mid一定在midmid的左邊,而且為什麼只能確定左端?因為midmid位於極值位置未知,但是mid一定是左邊!所以left mid.第二種情況下 midmid一定在mid的右邊,且一定在極值點的右邊,mid卻未知,...

bzoj 3203 保護出題人

題意 在乙個詭異的植物大戰殭屍遊戲中,給出n關 第i關隊首殭屍距房門xi,兩個殭屍之間間隔為d 每次在隊首新增乙個血量為ai的殭屍,其他殭屍不變 每關在門前放乙個攻擊力任意的植物,求n關放置植物總攻擊力的最小值 n 100000,其他資料 10 12 題解 題意敘述略詭異。建議還是去看一眼原題 首先...

stm32 03 輸入檢測 按鍵

關於上拉,下拉電阻的解釋 根據原理圖得到的資訊 gbioa 浮空輸入 第0位腳 根據以上資訊編寫標頭檔案巨集定義 ifndef bsp key h define bsp key h include stm32f10x.h define key on 1 define key off 0 define...