SCOI2010 傳送帶 三分法

2022-04-29 23:00:15 字數 668 閱讀 2013

lg傳送門

三分法模板。

關於為什麼可以三分,我選擇感性理解,有人證明了,總之我是懶得證了。

假設路徑是\(a \to e \to f \to d\),\(e\)和\(f\)分別是從\(ab\)到平面上的拐角和從平面上到\(cd\)上的拐角。首先三分\(e\)的位置,在此基礎上三分\(f\)的位置就可以了。

#include#include#define i inline

#define d double

using namespace std;

const d eps=1e-6;

struct na,b,c,d;

d p,q,r;

i d pwr(d x)

i d dst(n a,n b)

d dac0(n f),q=(n),o=dst(f,p)/r+dst(p,d)/q,e=dst(f,q)/r+dst(q,d)/q,e-o>eps?r=q:l=p;

return dst(f,l)/r+dst(l,d)/q;

}d dac(),q=(n),o=dst(a,p)/p+dac0(p),e=dst(a,q)/p+dac0(q),e-o>eps?r=q:l=p;

return dac0(l)+dst(a,l)/p;

}int main()

SCOI2010 傳送帶 三分答案

平面上有兩條傳送帶,在上面行走有一定的速度,在平面其他地方行走有一定速度,求從一條傳送帶一端走到另一條一端的時間。顯然在兩條傳送帶都走一段後走平面,當乙個轉折點確定後,距離就是乙個單峰函式,可以用三分解決,總的就是三分套三分。由於資料較小精度要求較小,可以暴力乙個轉折點再三分。include inc...

SCOI2010 傳送帶(三分套三分)

第一次接觸三分演算法,我認為是比較好理解的。三分演算法用於求單峰函式的最值,與二分不同,二分用於求單調函式中趨近某個值的值。三分搜尋的實現主要是判斷midl和midr所在值的大小。以凸函式為例 凹函式類似,只是判mid大小的時候保留小的即可 其實也是保留離極值最近的mid 先以left和right為...

三分學習筆記 SCOI2010 傳送帶

在乙個2維平面上有兩條傳送帶,每一條傳送帶可以看成是一條線段。兩條傳送帶分別為線段ab和線段cd。lxhgww在ab上的移動速度為p,在cd上的移動速度為q,在平面上的移動速度r。現在lxhgww想從a點走到d點,他想知道最少需要走多長時間 終於敢說我會三分了 本題是三分套三分的經典例題 分別在兩個...