/*
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...