演算法 整數二分(分巧克力)

2021-10-14 18:37:51 字數 816 閱讀 6814

兒童節那天有 k 位小朋友到小明家做客。

小明拿出了珍藏的巧克力招待小朋友們。

小明一共有 n 塊巧克力,其中第 i 塊是 hi×wi 的方格組成的長方形。

為了公平起見,小明需要從這 n 塊巧克力中切出 k 塊巧克力分給小朋友們。

切出的巧克力需要滿足:

形狀是正方形,邊長是整數

大小相同

例如一塊 6×5 的巧克力可以切出 6 塊 2×2 的巧克力或者 2 塊 3×3 的巧克力。

當然小朋友們都希望得到的巧克力盡可能大,你能幫小明計算出最大的邊長是多少麼?

第一行包含兩個整數 n 和 k。

以下 n 行每行包含兩個整數 hi 和 wi。

輸入保證每位小朋友至少能獲得一塊 1×1 的巧克力。

輸出切出的正方形巧克力最大可能的邊長。

#include

using

namespace std;

int n, m;

int siz[

100010][

2];bool

check

(int mid)

return ans >= m;

}int

main()

int l =

1, r =

1e5;

for(

int i =

0; i <50;

++i)

else

} cout << l << endl;

return0;

}

題目鏈結

分巧克力題解 整數二分

兒童節那天有 k 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有 n 塊巧克力,其中第 i 塊是 hi wi 的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出 k 塊巧克力分給小朋友們。切出的巧克力需要滿足 形狀是正方形,邊長是整數 大小相同 例如一塊 6 5...

分巧克力 (二分)

問題描述 兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力需要滿足 1.形狀是正方形,邊長是整數 2.大小相同 例如一塊6x5...

分巧克力 二分)

題目如下 兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力需要滿足 1.形狀是正方形,邊長是整數 2.大小相同例如一塊6x5的...