二分法應用之郊遊活動

2021-08-08 12:43:59 字數 792 閱讀 4642

/*

name: 郊遊活動

author:

date: 20-09-17 15:23

description: 有n名同學參加學校組織的郊遊活動,已知學校給這n名同學的郊遊總經費為a元,

與此同時第i位同學自己攜帶了mi元。為了方便郊遊,活動地點提供b(≥n)輛自行車供人租用,租用第j輛自行車的**為cj元,

每位同學可以使用自己攜帶的錢或者學校的郊遊經費,為了方便賬務管理,每位同學只能為自己租用自行車,且不會借錢給他人,

他們想知道最多有多少位同學能夠租用到自行車。(第

四、五空2.5分,其餘3分)

本題採用二分法。對於區間[l, r],我們取中間點mid並判斷租用到自行車的人數能否達到mid。

判斷的過程是利用貪心演算法實現的。

*/#include#include#includeusing namespace std;

const int maxn = 10;

int m[maxn], c[maxn];

int a, b, n;

int cmp(const void *a, const void *b)

bool check(int num) //看下標為num的人是否能租用到車

i++; j++;

} return count <= a; //總經費能否支付欠費

}int main()

else

}cout << ans+1 << endl;

return 0;

}

二分法應用

eg poj 2456 瘋牛 include include includeusing namespace std typedef long long ll const int maxn 1e7 10 ll a maxn ll n,c 對距離進行二分 int ans 0 int sum 1 int ...

二分法及其應用

二分法,是通過不斷縮小解的可能存在的範圍,從而求得問題的最優解的方法。經常有二分與其他演算法結合的題目。1.從有序陣列查詢某個值 以stl中的lower bound與upper bound為例 lower boud begin,end,val 函式輸入需要查詢的有序數列前閉後開區間,查詢數列中第乙個...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...