重新練習下二分法,發現還是手速不夠
從這道題學到一下幾點:
1、線性分幾段的方法,看我的judge()**;
2、二分的while()最終列印的是down,而不是mid(我**裡寫的是ans),或者up,
這麼想:跳出迴圈的時候,假設while裡的判斷,judge(ans)==1,那麼down是正確解,up不是
judge(ans)==0,那麼ans跟up都不是正確解
綜上,列印down才能輸出正確解
3、調了好一會二才發現的bug:judge函式裡,if(cnt
貼**:
#include
#include
#include
#include
using namespace std;
const int maxn = 100000+10;
int n,c;
int dis[maxn];
int judge(int s)
printf(%d
,down);//??ans?}}
poj2456(二分最大化最小值,貪心)
translation 有n間牛舍在一條直線上面,要住進c頭牛。求每頭牛之間的最大的最小距離能是多少?solution 二分最大化最小值,貪心 首先二分列舉最優解,其次就是判定該次最優解是否可行。這一步驟可以按照貪心法來判定。最後逐步縮小範圍。note date 2016.11.1 include ...
最大化最小值問題(二分法)
二分中非常典型的應用就是 最小化最大值問題 和 最大化最小值問題 本篇結合三道例題來說明最小化最大值問題 會給你一些可取的資料範圍 這個範圍有時候需要自己發現,不過一般來說都很明顯 然後在這些範圍中找到符合要求的數值 通過函式判斷 當然一般會有很多值都是符合要求的,用二分找出那個最小的答案 就是符合...
最大化平均值 二分法
n個物品重量價值分別為wi,vi 取k個值使得單位重量的價值最大。輸入 n k 接下來n行表示重量 接下來n行表示價值 分析 貪心是錯的。使的vi wi最大 假設單位重量的最大價值為x。則vi wi x 即vi wi x 0 所以按照上面公式排序二分求解。include include includ...