洛谷 P1542 包裹快遞

2022-04-07 08:22:25 字數 1387 閱讀 3133

小k成功地破解了密文。但是乘車到x國的時候,發現錢包被偷了,於是無奈之下只好作快遞員來攢足路費去orz教主……

乙個快遞公司要將n個包裹分別送到n個地方,並分配給郵遞員小k乙個事先設定好的路線,小k需要開車按照路線給的地點順序相繼送達,且不能遺漏乙個地點。小k得到每個地方可以簽收的時間段,並且也知道路線中乙個地方到下乙個地方的距離。若到達某乙個地方的時間早於可以簽收的時間段,則必須在這個地方停留至可以簽收,但不能晚於簽收的時間段,可以認為簽收的過程是瞬間完成的。

為了節省燃料,小k希望在全部送達的情況下,車的最大速度越小越好,就找到了你給他設計一種方案,並求出車的最大速度最小是多少。

輸入格式:

第1行為乙個正整數n,表示需要運送包裹的地點數。

下面n行,第i+1行有3個正整數xi,yi,si,表示按路線順序給出第i個地點簽收包裹的時間段為[xi, yi],即最早為距出發時刻xi,最晚為距出發時刻yi,從前乙個地點到達第i個地點距離為si,且保證路線中xi遞增。

可以認為s1為出發的地方到第1個地點的距離,且出發時刻為0。

輸出格式:

僅包括乙個整數,為車的最大速度最小值,結果保留兩位小數。

輸入樣例#1:

3

1 2 2

6 6 2

7 8 4

輸出樣例#1:

2.00

對於20%的資料,n≤10;

對於30%的資料,xi,yi,si≤1000。

對於50%的資料,n≤1000;

對於100%的資料,n≤200000;xi≤yi≤10^8;si≤10^7。

時限1s

第一段用1的速度在時間2到達第1個地點,第二段用0.5的速度在時間6到達第2個地點,第三段用2的速度在時間8到達第3個地點。

思路:二分。

錯因:本題卡精度卡的特別厲害୧(๑•̀◡•́๑)૭(o(≧口≦)o  o(╥﹏╥)o   (╯‵□′)╯炸彈!•••*~●      (╯‵□′)╯︵┻━┻出題人)

#include#include

#include

#include

#define maxn 200010

using

namespace

std;

intn;

long

double

l,r,mid,ans;

intx[maxn],y[maxn],z[maxn];

bool

judge()

return

false;}

intmain()

else r=mid;

}printf(

"%.2lf

",(double

)ans);

}

洛谷 P1542 包裹快遞

一看到最小的最大就能知道是二分啦 對於這道題,我們要二分的值肯定是可以知道的 行駛速度,因為求的是速度,而邊界條件就為 0 和最大的速度也就是路程總和了,對於精度,一般開在題目要求的精度上加 4 就行。cheak 函式當然就是看以這個速度行走,能否到達終點即可。注意 題目雖然是說每一次的速度可以不一...

Luogu P1542 包裹快遞

原題鏈結qwq 本題要求我們求出車的最大速度最小值。像求最大值最小 最小值最大這種型別的題目,我們很自然地就能想 到用二分答案 一般情況 來求解。做二分題目時,我們要弄清楚這樣幾點 二分什麼 如何判斷是否可行 即check函式的內容 當二分到乙個滿足條件的解時,l r 該如何移動 針對以上三個問題,...

洛谷 1542 快遞包裹

小k成功地破解了密文。但是乘車到x國的時候,發現錢包被偷了,於是無奈之下只好作快遞員來攢足路費去orz教主 乙個快遞公司要將n個包裹分別送到n個地方,並分配給郵遞員小k乙個事先設定好的路線,小k需要開車按照路線給的地點順序相繼送達,且不能遺漏乙個地點。小k得到每個地方可以簽收的時間段,並且也知道路線...