分巧克力
兒童節那天有k位小朋友到小明家做客。
小明拿出了珍藏的巧克力招待小朋友們。
小明一共有n塊巧克力,其中第i塊是hi×wi的方格組成的長方形。
為了公平起見,小明需要從這n塊巧克力中切出k塊巧克力分給小朋友們。
切出的巧克力需要滿足:
形狀是正方形,邊長是整數
大小相同
例如一塊 6×5 的巧克力可以切出 6 塊 2×2 的巧克力或者 2 塊 3×3 的巧克力。
當然小朋友們都希望得到的巧克力盡可能大,你能幫小明計算出最大的邊長是多少麼?
輸入格式
第一行包含兩個整數n和k。
以下n行每行包含兩個整數hi和wi。
輸入保證每位小朋友至少能獲得一塊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的 列印出來吧。輸入描述 多組測試資料 資...