leetcode 1760 袋子裡最少數目的球

2021-10-19 11:43:53 字數 1016 閱讀 7995

給你乙個整數陣列 nums ,其中 nums[i] 表示第 i 個袋子裡球的數目。同時給你乙個整數maxoperations。你可以進行如下操作至多maxoperations次:

選擇任意乙個袋子,並將袋子裡的球分到 2 個新的袋子中,每個袋子裡都有正整數個球。

比方說,乙個袋子裡有5個球,你可以把它們分到兩個新袋子裡,分別有1個和 4 個球,或者分別有 2 個和 3 個球。

你的開銷是單個袋子裡球數目的最大值,你想要最小化開銷。

請你返回進行上述操作後的最小開銷。

示例:

輸入:nums = [2,4,8,2], maxoperations = 4

輸出:2

解釋:

測試樣例1:

nums = [7,17], maxoperations = 1

17=8+9, 返回9

測試樣例2:

nums = [7,17], maxoperations = 2

17=10+7,10=5+5, 返回7

我們可以發現我們沒有固定的劃分策略,使得我們進行貪心操作是不可行的

#include #include using namespace std;

class solution

if (cnt<=maxoperations) return true;

else return false;

}int minimumsize(vector& nums, int maxoperations) {

int m;

sort(nums.begin(),nums.end());

int l=1,r=nums[nums.size()-1];

while(l這種極小極大化問題是常見的問題,一般都用二分法解題。

更多的類似題型

ssl1760 商店選址問題

商店選址問題 time limit 10000ms memory limit 65536k total submit 341 accepted 89 case time limit 1000ms description 給出乙個城市的地圖 用鄰接矩陣表示 商店設在一點,使各個地方到商店距離之和最短。...

SSLOJ1760 商店選址問題

給出乙個城市的地圖 用鄰接矩陣表示 商店設在一點,使各個地方到商店距離之和最短。第一行為n 共有幾個城市 n小於201 第二行至第n 1行為城市地圖 用鄰接矩陣表示 最短路徑之和 30 3 1 3 0 2 1 2 0 注意,0,代表到不了!剩下的floyd計算最短路,然後列舉求最小 code inc...

SSL 1760商店選址問題

time limit 1000ms memory limit 65536k 給出乙個城市的地圖 用鄰接矩陣表示 商店設在一點,使各個地方到商店距離之和最短。第一行為n 共有幾個城市 n小於201 第二行至第n 1行為城市地圖 用鄰接矩陣表示 最短路徑之和 303 1302 1203用floyd。0表...