最大化最小值問題(二分法)

2021-08-21 17:37:08 字數 928 閱讀 2539

二分中非常典型的應用就是「最小化最大值問題」和「最大化最小值問題」,本篇結合三道例題來說明最小化最大值問題;

會給你一些可取的資料範圍(這個範圍有時候需要自己發現,不過一般來說都很明顯),然後在這些範圍中找到符合要求的數值(通過函式判斷),當然一般會有很多值都是符合要求的,用二分找出那個最小的答案(就是符合要求的話就讓right=mid,不符合的話就讓left=mid啦);

例一:csu 1976  搬運工小明    題目在這裡

是乙個模板題……下面結合**來說明

#include#include#include#define maxn 100005

using namespace std;

long long a[maxn];

int n,m;

bool cal(long long mid)//這個函式就是把每個東西裝入袋子的過程,看此時選擇的體積是否可以裝完

cnt++;//袋子數+1

vol=0;

}return true;

}int main(void)

else

}printf("%lld\n",left);}}

呼呼,這個東西今天終於弄明白了(好菜好菜嚶),然後下面有兩道題跟這個思路基本一樣;

題目一:戳我戳我

這個是完全一模一樣的,把上面的模板套進去幾乎不用改就可以

題目二:戳我戳我

這個思路也是一樣的,只是cal()函式做了一些改動,結合題意,奶牛是怎麼放置的就可以。

呼呼

poj 2456 二分法 最大化最小值

重新練習下二分法,發現還是手速不夠 從這道題學到一下幾點 1 線性分幾段的方法,看我的judge 2 二分的while 最終列印的是down,而不是mid 我 裡寫的是ans 或者up,這麼想 跳出迴圈的時候,假設while裡的判斷,judge ans 1,那麼down是正確解,up不是 judge...

二分 最小值最大化

問題描述 記得上學那會,fbs同學經常會欺負蘿蔔同學。有一次,他出了這麼一道題目,想為難一下蘿蔔同學。題目是這樣的 有n個整數x i,x i值的範圍從0到1000000000。要從中選出c個數 2 c n 使得任意兩個數差的絕對值的最小值盡可能大,求這個最大值。由於資料太大,這次蘿蔔同學的確被難住了...

最大化最小值 二分

aggressive cows 題目意思 農民約翰有用c隻牛,然後他有n個隔間,每個隔間都有自己的座標位置 一維的 pos,如何安排把牛安排進隔間才能使,所有牛之間距離的最小值最大,我們不需要求這個分配方案,我們只需要求這個最小距離的最大值,很裸的最小值最大化。輸入 n 5m 3x 輸出 3 在位置...