二分 藍橋杯省賽 分巧克力

2021-10-02 17:09:56 字數 2908 閱讀 9684

題目:

兒童節那天有 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題意:

n 個矩

形,現將

n個矩形

等分成k

個正方形

,求正方

形的最大

邊長。數

據保證滿

足至少可

分成k個

1×1的

正方形。

n個矩形,現將n個矩形等分成k個正方形,求正方形的最大邊長。\\資料保證滿足至少可分成k個1×1的正方形。

n個矩形,現

將n個矩

形等分成

k個正方

形,求正

方形的最

大邊長。

資料保證

滿足至少

可分成k

個1×1

的正方形

題解:

答 案滿

足二段性

,考慮二

分法

。答案滿足二段性,考慮二分法。

答案滿足二段

性,考慮

二分法。二分

正方形邊

長為m,

對第i塊

hi×w

i的矩形

而言,最

多可以分

成⌊hi

m⌋⋅⌊

wim⌋

塊.

二分正方形邊長為m,對第i塊h_i×w_i的矩形而言,最多可以分成\lfloor\frac\rfloor·\lfloor\frac\rfloor塊.

二分正方形邊

長為m,

對第i塊

hi​×

wi​的

矩形而言

,最多可

以分成⌊

mhi​

​⌋⋅⌊

mwi​

​⌋塊.所以

對每個矩

形能夠分

得的正方

形數量求

和sum

=∑i=

1n⌊h

im⌋⋅

⌊wim

⌋,求得

使得su

m>=k

的最大邊

長。

所以對每個矩形能夠分得的正方形數量求和\\sum=\sum_^n \lfloor\frac\rfloor·\lfloor\frac\rfloor ,求得使得sum>=k的最大邊長。

所以對每個矩

形能夠分

得的正方

形數量求

和sum

=∑i=

1n​⌊

mhi​

​⌋⋅⌊

mwi​

​⌋,求

得使得s

um>=k

的最大邊

長。注意:二分的

時候注意

,若當前

二分的邊

長能夠分

得的巧克

力數量s

um是大

於等於人

數k的,

則代表方

案可行,

二分的時候注意,若當前二分的邊長能夠分得的巧克力數量sum是大於等於人數k的,則代表方案可行,

二分的時候注

意,若當

前二分的

邊長能夠

分得的巧

克力數量

sum是

大於等於

人數k的

,則代表

方案可行

, 也 就是

說sum

≥k時可

行,分作

一類,此

時更新l

=mid

,否則更

新r=m

id−1

。也就是說 sum\ge k時可行,分作一類,此時更新l=mid,否則更新r=mid-1。

也就是說su

m≥k時

可行,分

作一類,

此時更新

l=mi

d,否則

更新r=

mid−

1。**:

#include

#include

#include

#include

using

namespace std;

const

int n=

1e5+10;

int n,k;

int h[n]

,w[n]

;int

cal(

int x)

intmain()

printf

("%d\n"

,l);

return0;

}

藍橋杯 分巧克力 二分思想

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

藍橋杯 分巧克力(二分搜尋)

歷屆試題 分巧克力 時間限制 1.0s 記憶體限制 256.0mb 問題描述 兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力...

藍橋杯 分巧克力(二分答案)

時間限制 1.0s 記憶體限制 256.0mb 問題描述 兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力需要滿足 1.形狀是...