洛谷1182 1336 二分答案技巧

2021-08-22 04:57:00 字數 881 閱讀 3107

題目傳送門:

今天真是令人悲傷的一天,寫什麼都寫不出來,本來想找點st表的題做,在找題的路上意外看到了網路流,想到自己網路流完全不行就想研究這個,為了研究網路流,我想先去研究我同樣薄弱的bfs,於是又遇到了我的一生之敵八數碼,想把八數碼解決就先練一下字串雜湊,結果就是直到現在,一事無成,只能說如下圖

那麼在睡覺前把前兩天把我逼瘋讓我好好思考了一番的二分答案技巧在此做乙個記錄。通常來說,我們使用二分技巧適用於查詢某個排好序序列裡的值,複雜度為logn,那麼這兩道題則是將查詢用於了另乙個方面——直接查詢答案,然後檢查答案是否正確。本身這個技巧非常簡單,但是很難想到(至少對於我這樣的蒟蒻是這樣吧),畢竟可以說這是在猜答案而不是解答案。不多說了,附上**:

#1316

#include#includeint a[1000001]=;

int n,m;

int quicksort(int left,int right)

}if(ileft) quicksort(left,j);

return 0;

}int search(int x)

if(num>=m)

return 1;

}if(num#includeint a[1000001]=;

int tmp=0,n,m;

int search(int x)

if(numleft) left=a[i];

right+=a[i];

}while(left

printf("%d",left);

return 0;

}

洛谷二分答案問題

二分答案關鍵有2點 1.怎麼寫judge函式,其實就是根據題意想辦法判斷我們列舉的這個答案是否可行 合法 2.找到了乙個可行解 合法的,超過題目限制是不合法 再往左邊還是右邊查詢看是否有更優的解是個問題,需要好好想想。這兩點想明白了,二分就會異常簡單甚至比暴力列舉還要簡單。因為暴力列舉你還要考慮 0...

洛谷1873砍樹 二分答案

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

洛谷1577 1297切繩子(二分答案)

wonderland居民決定舉行一屆地區性程式設計大賽。仲裁委員會志願負責這次賽事並且保證會組織一次有史以來最公正的比賽。為此,所有參賽者的電腦和網路中心會以星狀網路連線,也就是說,對每個參賽者,組委會會用一根長度一定的網線將他的計算機與中心連線,使得他們到網路中心的距離相等。為了買網線,組委會與當...