17藍橋C語言B組 9 分巧克力 二分或排序查詢

2021-09-12 17:11:36 字數 1230 閱讀 8886

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

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

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

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

2. 大小相同

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

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

輸入第一行包含兩個整數n和k。(1 <= n, k <= 100000)

以下n行每行包含兩個整數hi和wi。(1 <= hi, wi <= 100000)

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

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

樣例輸入:

2 10

6 55 6

樣例輸出:

2資源約定:

峰值記憶體消耗(含虛擬機器) < 256m

cpu消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入…」 的多餘內容。

注意:main函式需要返回0;

只使用ansi c/ansi c++ 標準;

不要呼叫依賴於編譯環境或作業系統的特殊函式。

所有依賴的函式必須明確地在原始檔中 #include

不能通過工程設定而省略常用標頭檔案。

提交程式時,注意選擇所期望的語言型別和編譯器型別。

(1)二分

#include#includeusing namespace std;

const int n=1e5+5;

int n,k,h[n],w[n],l=1,r=1;

bool d(int t)

return res>=k?1:0;

}int main()

ch[100005];

bool cmp(node a,node b)

int maxx=0;

int main()

sort(ch,ch+n,cmp);

int num;

int t;

while(maxx)

else if(num=k)

}maxx--;

}printf("0\n");

return 0;

}

2012藍橋C語言B組

微生物增殖 假設有兩種微生物 x 和 y x出生後每隔3分鐘 一次 數目加倍 y出生後每隔2分鐘 一次 數目加倍 乙個新出生的x,半分鐘之後吃掉1個y,並且,從此開始,每隔1分鐘吃1個y。現在已知有新出生的 x 10,y 89,求60分鐘後y的數目。如果x 10,y 90 呢?本題的要求就是寫出這兩...

2023年藍橋杯B組第九題分巧克力(純c語言)

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

藍橋杯17屆第九題 分巧克力(二分查詢)

前言 二分查詢一般用於暴力列舉下的優化,在有序的條件下,能極大提公升查詢效率。兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力...