每日一題 分巧克力

2021-10-18 10:49:19 字數 1627 閱讀 2610

分巧克力

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

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

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

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

切出的巧克力需要滿足:

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

大小相同

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

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

輸入格式

第一行包含兩個整數nk

以下n行每行包含兩個整數hiwi

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

輸出格式

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

資料範圍

1≤n,k≤105,

1≤hi,wi≤105

輸入樣例:

2 10

6 55 6

輸出樣例:

2
分析:

分巧克力其實就是二維的剪繩子,本質都是二分法,區別就是浮點數的二分法和整數的二分法再邊界取值上有點不同。

詳細了解可以看這個:二分法

**:

#include

#include

using

namespace std;

const

int n =

100001

;int n, k;

int h[n]

, w[n]

;bool

check

(int x)

//判斷當每小塊巧克力寬度為x時候可否切出k塊

return cnt >= k;

}int

main()

int min =

0, max =

10e5

;//二分法,最小值取0,最大值取題目巧克力邊長的最大值。

while

(max-min>1)

//整數二分的結果:max=min或者max=min+1

cout << min;

return0;

}

每日一題 分蘋果

title 每日一題 分蘋果 date 2019 11 17 10 22 29 tags 64.分蘋果 15分 c時間限制 3000 毫秒 c記憶體限制 3000 kb 題目內容 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?m,n為自然數。說明 如有7個蘋果,...

每日一題 83 分蘋果(貪心)

n 只奶牛坐在一排,每個奶牛擁有 ai 個蘋果,現在你要在它們之間轉移蘋果,使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從乙隻奶牛身上拿走恰好兩個蘋果到另乙個奶牛上,問最少需要移動多少次可以平分蘋果,如果方案不存在輸出 1。輸入描述 每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個整數 ...

每日一題 1

題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...