HDU 5699 貨物運輸

2021-07-11 23:48:50 字數 1991 閱讀 9087

problem description

公元2023年,l國發生了一場戰爭。

小y負責領導工人運輸物資。

其中有 m

種物資的運輸方案,每種運輸方案形如 l

i,ri

。表示存在一種貨物從 l

i 運到 r

i 。

這裡有 n

個城市,第 i

個城市與第 i

+1個城市相連(這裡 1

號城市和 n

號城市並不相連),並且從 i

號城市走到 i

+1號或者從 i

+1號走到 i

號需要耗費1點時間。

由於高科技的存在,小y想到了一種節省時間的好方案。在x號城市與y號城市之間設立傳送站,只要這麼做,在x號城市走到y號城市不需要耗費時間,同樣的,從y號城市走到x號城市也不需要耗費時間。

但是為了防止混亂,只能設立這麼一條傳送站。

現在這些運輸方案同時進行,小y想讓最後到達目的地的運輸方案時間最短。

在樣例中,存在兩條運輸方案,分別是1號城市到3號與2號到4號,那麼我們在2號城市與3號城市建立傳送站,這樣運輸方案時間最長的只需要1點時間就可以了。

input

多組測試資料

第一行兩個整數 n

,m(1

≤n,m

≤1000000

) 。

接下來 m

行,每行兩個整數 l

i,ri

(1≤l

i,ri

≤n) 。(若 l

i=ri

,則不需要耗費任何時間)

output

乙個數表示答案。

sample input

5 2

1 32 4

sample output

1

二分答案加驗證,驗證的方法比較巧妙,想了挺久才搞懂。

二分答案為最遠的距離d,用這個d來驗證,對於原本距離小於d的可以不用考慮了,只考慮原來大於d的

假設大於d的距離的兩端是l和r,那麼我們選擇建的區間是l,r那麼一定要滿足

abs(l-l)+abs(r-r)<=d

把這個式子的絕對值去掉,我們可以得到四條式子。

l-l+r-r<=d;

l-l-r+r<=d;

l-l+r-r<=d;

l-l+r-r<=d;

整理一下可得 l+r-d<=l+r<=l+r+d,l-r-d<=l-r<=l-r+d;

那麼我們就可以知道l+r和l-r的範圍了,然後只要做區間的合併,

看最後是否有合法的l+r和l-r即可。

這裡需要注意乙個問題,當l+r和l-r是唯一的且相加為奇數,那麼這樣的情況下,l和r是不存在的。

#pragma comment(linker, "/stack:1024000000,1024000000")

#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef __int64 ll;

const int low(int x)

const int inf = 0x7fffffff;

const int mod = 1e9 + 7;

const int maxn = 1e6 + 10;

int n, l[maxn], r[maxn], m;

bool check(int d)

return l == r&&ll == rr ? !(l + ll & 1) : l <= r&&ll <= rr;

}int main()

int q = 0, h = n;

while (q <= h)

printf("%d\n", q);

} return 0;

}

HDU 5699 貨物運輸 二分

公元2222年,l國發生了一場戰爭。小y負責領導工人運輸物資。其中有m種物資的運輸方案,每種運輸方案形如li,ri。表示存在一種貨物從li運到ri。這裡有n個城市,第i個城市與第i 1個城市相連 這裡1號城市和n號城市並不相連 並且從i號城市走到i 1號或者從i 1號走到i號需要耗費1點時間。由於高...

51Nod 1671 貨物運輸

acm模版 官方題解 首先我們需要注意到最重要的一點,所有運輸方案同時進行,我們只需要計算最後到達的方案的花費時間的最小值。所以我們需要考慮的是乙個極限情況,在這個極限情況下,其他運輸方案全部是在允許範圍內的。所以我們可以二分列舉這個極限情況,判斷所有方案是否都在這個極限內,在的話就繼續縮小極限,不...

51nod 1671 貨物運輸

公元2222年,l國發生了一場戰爭。小y負責領導工人運輸物資。其中有m種物資的運輸方案,每種運輸方案形如li,ri。表示存在一種貨物從li運到ri。這裡有n個城市,第i個城市與第i 1個城市相連 這裡1號城市和n號城市並不相連 並且從i號城市走到i 1號或者從i 1號走到i號需要耗費1點時間。由於高...