藍橋杯第八屆I題 分巧克力 二分查詢

2021-10-04 01:14:57 字數 1039 閱讀 6034

題目描述

兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。

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

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

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

大小相同

例如一塊6x5的巧克力可以切出6塊2x2的巧克力或者2塊3x3的巧克力。

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

輸入第一行包含兩個整數n和k。(1 <= n, k <= 100000) 以下n行每行包含兩個整數hi和wi。(1 <= hi, wi <= 100000) 輸入保證每位小朋友至少能獲得一塊1x1的巧克力。

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

測試用例

input

2 10

6 55 6

output

2

思路

這個題和我們初學二分時的繩子分割類似。

二分列舉分為三步:

1.根據條件初始化l和r

2.二分列舉

//最大值

while

(r-l>1)

//最小值

while

(r-l>1)

3.寫cheak函式。

這裡說一下本題的cheak函式,以mid為最長邊,算出可以切多少個這樣的蛋糕,如果大於等於k,則列舉範圍小了,如果小於k則列舉範圍大了。

**

#include

const

int maxn=

1e5+5;

struct nodearr[maxn]

;int n,k;

bool

cheak

(int mid)

intmain()

printf

("%d"

,l);

return0;

}

第八屆藍橋杯 分巧克力 二分

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

(二分)第八屆藍橋杯 9 分巧克力

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

第八屆藍橋杯分巧克力

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