二分法應用NUSOJ 3053集N「福」

2021-10-07 18:46:07 字數 784 閱讀 9539

寫了那麼多簡單的二分法,這次來乙個需要思考的二分法吧,強大的二分法!!!!

description:

已知:zzl學長有n種「福」卡,第i種福卡的數目為ai,並且有m張萬能福(萬能福可以代替任意一種福卡),zzl學長可以用n種福卡各一張來合成乙個**碎片,合成過程中可以使用萬能福,但是每次合成最多使用一張萬能福,問zzl學長最多可以合成多少個**碎片。

input:

多組輸入

第一行包含兩個整數n, m,即「福」的種數和萬能福的張數。(2< = n < = 50, 0 < = m<= 500,000,000)

第二行包含n個整數ai,即每種「福」的張數。(0 < = ai <= 500,000,000)

output:

輸出僅乙個整數,即最多能合成**碎片的數量

sample input

3 10

2 2 10

3 41 2 3

3 01 2 3

sample output 4

31

#include

using

namespace std;

int n,m;

intbinary

(int mid,

int a)

return1;

}int

main()

else

} cout<}return0;

}

二分法應用

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