BZOJ 1857 傳送帶 三分套三分

2022-05-27 01:39:12 字數 1975 閱讀 3271

在乙個2維平面上有兩條傳送帶,每一條傳送帶可以看成是一條線段。兩條傳送帶分別為線段ab和線段cd。lxhgww在ab上的移動速度為p,在cd上的移動速度為q,在平面上的移動速度r。現在lxhgww想從a點走到d點,他想知道最少需要走多長時間

input

輸入資料第一行是4個整數,表示a和b的座標,分別為ax,ay,bx,by 第二行是4個整數,表示c和d的座標,分別為cx,cy,dx,dy 第三行是3個整數,分別是p,q,r

output

輸出資料為一行,表示lxhgww從a點走到d點的最短時間,保留到小數點後2位。

顯然是先從ab的某點e出發,然後經過平面到達cd的某點f,然後從f到達d。

我們假設已經確定了e,然後我們確定cd的f時,我們通過直覺感知到隨著點f從c移動到d

時間關於位移的函式影象是乙個先減少後增加的圖形。

我們再來確定e,通過直覺,

時間關於位移的函式影象依然是乙個先減少後增加的圖形。

所以我們先三分e,再三分f,

我們用三分套三分解決了這個問題。

# include # include 

# include

# include

# include

# include

# include

# include

# include

# include

using

namespace

std;

# define lowbit(x) ((x)&(-x))

# define pi acos(-1.0

)# define maxn

250005

# define eps 1e-3

# define maxm

1000005

# define mod

1000000007

# define inf

1000000000

# define mem(a,b) memset(a,b,

sizeof

(a))

# define for(i,a,n)

for(int i=a; i<=n; ++i)

# define fo(i,a,n)

for(int i=a; ii)

# define bug puts("h

");# define lch p

<<1

,l,mid

# define rch p

<<1|1,mid+1

,r# pragma comment(linker,

"/stack:1024000000,1024000000")

typedef

long

long

ll;typedef unsigned

long

long

ull;

int _max(int a, int b)

int _min(int a, int b)

intscan()

void out(int

a)

if(a>=10) out(a/10

); putchar(a%10+'0'

);}double

ax, ay, bx, by, cx, cy, dx, dy, p, q, r;

double dis(double x1, double y1, double x2, double

y2)double cal(double x, double

y)

return ans+dis(lx,ly,dx,dy)/q+dis(x,y,lx,ly)/r;

}int

main ()

printf(

"%.2lf\n

",cal(lx,ly));

return0;

}

view code

bzoj1857 傳送帶 三分套三分

我的第一道三分題目。早上跟著cyc學了一下三分,晚上想練一下手發現沒什麼水題就找到了這一道2333 主要是證明是乙個單峰函式,這也是本題最難的部分 網上好多人寫出來但不會證明 證明過程來自yyl dalao 本題要討論必使r從a點出發,要使解最優,必定要走a e f d,其中e是ab上一點,f為cd...

BZOJ 1857 傳送帶 三分套三分

time limit 1 sec memory limit 64 mb submit 1077 solved 575 submit status discuss 在乙個2維平面上有兩條傳送帶,每一條傳送帶可以看成是一條線段。兩條傳送帶分別為線段ab和線段cd。lxhgww在ab上的移動速度為p,在c...

bzoj1857 傳送帶 三分

很早看到的三分法,竟然在今天用到了 顯然已我的智商是想不到的 然而發現自己並不會證明o o,但是除了最關鍵的一步其它還是會的 首先,我們用三分法,最基本的是要證明那個人一定是沿著如下路徑走的 從a沿著ab走一段,再穿越到cd上某一點,最後到終點。證明如下 不妨假設p q r,因為當r max p,q...