二分搜尋 1904 放小球

2022-08-11 07:45:10 字數 1076 閱讀 5193

2020-06-13 18:04:45

問題描述:

n個桶中小球的個數已知,可以操作k次(每次從桶中取出乙個球,或者新增乙個球),每個桶有規定的最大容量w[i]。求操作後兩相鄰桶之間的最大差值的平方的最小值。

樣例

樣例 1:

輸入: 56

[1,2,3,4,5]

[15,15,15,15,15]

輸出:

0

說明

共有5個桶,最多操作6次,桶內的小球分別是1,2,3,4,5,桶的最大容量分別是15,15,15,15,15。

注意事項

n <= 100

w[i] <= 100

問題求解:

最大化最小的問題可以使用二分來解決。

主要問題就是check函式如何寫,也就是對於最大差值mid,至少需要多少操作來完成。

dp[i][j] = 到了第i位置最大差值小於等於mid的最小操作。

public int getans(int n, int k, lista, listw) 

return r * r;

}private boolean check(lista, int mid, int k, listw)

}for (int i = 0; i <= w.get(0); i++) dp[0][i] = math.abs(i - a.get(0));

for (int i = 1; i < a.size(); i++) }}

int res = integer.max_value / 2;

for (int i = 0; i <= w.get(a.size() - 1); i++) res = math.min(res, dp[a.size() - 1][i]);

return res <= k;

}

Java 二分搜尋 二分查詢

對陣列元素進行逐個查詢顯然是費時費力的工作,我們可以使用一些方法快速地搜尋出陣列中元素的指定位置.接下來我們介紹一種方法 二分搜尋法 二分搜尋法充分利用了元素間的次序關係.基本思想 將n元素分成個數大致相同的涼拌,取arr n 2 與欲查詢的x做比較,如果 下面將採用兩種方式 遞迴 非遞迴 來展示二...

二分(二分答案 二分搜尋)與單調性

經典二分搜尋是二分空間範圍。二分答案又叫二分猜值,是二分解的值空間。其實可以統一,普通的二分搜尋也是二分答案值域 下標空間,也是猜值。二分必須滿足單調性,最直觀的,二分搜尋只能在有序陣列上進行。單調性體現在,下標和元素值是單調的,也就是 if j i 有 a j a i 一般二分答案解決的問題是最優...

演算法 二分搜尋

思路 首先從陣列中間的數把陣列分成兩部分,如果查詢的數比中間的數大,說明接下來需要查詢右邊的部分,令中間的的下標 1為下一次開始查詢的開始位置,再從low到high之間查詢,一直迴圈。root bogon code cat erfen.c include int work int x,int a,i...