1. 程式人生 > >BZOJ3613 南園滿地堆輕絮 二分/貪心

BZOJ3613 南園滿地堆輕絮 二分/貪心

target www blank bzoj 卡住了 加強 優秀 空間 targe

正解:貪心

解題報告:

傳送門!

這題似乎是可以二分水過的,,,但數據可以加強一下就能簡單把二分卡住了,或者修改下空間限制什麽的反正就很容易能卡住

所以這裏介紹一個優秀的貪心做法,O(n)的時間復雜度和O(1)級別的空間復雜度就很美

首先二分還是能get的趴?就二分一個mid,對前面就能加就加對後面就能減就減,然後就做完了

這時候我們考慮一下二分出的這個mid的本質是什麽?就是對每個數,它本來的取值只能是a[i],現在通過這個mid的存在,它可以取[a[i]-d,a[i]+d]範圍內的所有值了,就相當於是對應一個區間了

然後題目就變成了,給一個若幹條豎直塊構成的圖形,問從最左邊開始走能否不向下一路走到最右

顯然最低的要求就只要有一條平直的線能經過就歐克了,所以就只要最低點的最高和最高點的最低在同一高度就好,所以就

{x-mid}max={x+mid}min

可得mid=(xmax-xmin)/2

大概這樣兒,over!

等下放代碼QAQ!

BZOJ3613 南園滿地堆輕絮 二分/貪心