P1873 砍樹 二分裸題

2022-06-02 04:36:07 字數 644 閱讀 4210

題意:給出n顆樹,要砍這些樹,工具會揮向這些高度不一的平行的樹,掉落下來的高度的總和,就是砍掉的樹的長度總和

給出乙個至少砍到的長度值(題目中的樹的長度大於等於這個長度值)

要求我們尋找乙個最優的高度,讓砍掉的數目長度盡量少,又能滿足題意;

思路:這是二分經典題

我們定義乙個最大區間範圍之後,就開始check跑二分即可。。

1 #include2

using

namespace

std;

3 typedef long

long

ll;4

const

int maxn=1e6+10;5

ll a[maxn];

6ll n,limit;

7ll check(ll x)815

if(sum>=limit) return1;

16else

return0;

17}18int

main()

1932

else r=mid-1;33

}34 printf("

%lld\n

",ans);

35return0;

36 }

view code

P1873 砍樹 二分

題目描述 伐木工人公尺爾科需要砍倒m公尺長的木材。這是乙個對公尺爾科來說很容易的工作,因為他有乙個漂亮的新伐木機,可以像野火一樣砍倒森林。不過,公尺爾科只被允許砍倒單行樹木。公尺爾科的伐木機工作過程如下 公尺爾科設定乙個高度引數h 公尺 伐木機公升起乙個巨大的鋸片到高度h,並鋸掉所有的樹比h高的部分...

二分答案 洛谷P1873 砍樹

思路總結 伐木工人公尺爾科需要砍倒m公尺長的木材。這是乙個對公尺爾科來說很容易的工作,因為他有乙個漂亮的新伐木機,可以像野火一樣砍倒森林。不過,公尺爾科只被允許砍倒單行樹木。公尺爾科的伐木機工作過程如下 公尺爾科設定乙個高度引數h 公尺 伐木機公升起乙個巨大的鋸片到高度h,並鋸掉所有的樹比h高的部分...

洛谷P1873 砍樹 題解 二分答案

首先,在已知砍伐高度 h 的情況下,我們可以直接求得能夠得到的木材總長度。所以,我們可以開乙個函式bool check int h 用於判斷在砍伐高度為 h 的情況下,得到的木材總長度是否 m 如果是,則返回 true 否則,返回 false。可以發現,隨著砍伐高度的上公升,得到的木材的數量肯定是減...