兒童節那天有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 5
5 6
樣例輸出:
2資源約定:
峰值記憶體消耗(含虛擬機器) < 256m
cpu消耗 < 1000ms
我們統計出最大的邊長 從1到mx 二分+驗證
複雜度o(nlogn)
注意 驗證方法:
h*w的長方形 能劃分出幾個 x*x 的正方形呢 答案是 (h/x)*(w/x) 除法是整除
#include#include#include#includeusing namespace std;
typedef struct node;
const int maxn=1e5+7;
node a[maxn];
int n,k,mx=-1;
bool check(int x)
int main()
//二分答案
int l=1,r=mx,ans;
while(l<=r)
else
}printf("%d\n",ans);
return 0;
}
藍橋杯第八屆省賽
第4題 6x6的方格,沿著格仔的邊線剪開成兩部分。要求這兩部分的形狀完全相同。如圖 p1.png,p2.png,p3.png 就是可行的分割法。試計算 包括這3種分法在內,一共有多少種不同的分割方法。注意 旋轉對稱的屬於同一種分割法。請提交該整數,不要填寫任何多餘的內容或說明文字。圖的dfs 按照兩...
等差素數列 第八屆藍橋杯B組(省賽)
2,3,5,7,11,13,是素數序列。類似 7,37,67,97,127,157 這樣完全由素數組成的等差數列,叫等差素數數列。上邊的數列公差為30,長度為6。2004年,格林與華人陶哲軒合作證明了 存在任意長度的素數等差數列。這是數論領域一項驚人的成果!長度為10的等差素數列,其公差最小值是多少...
第八屆藍橋杯C C 程式設計B組省賽第六題
problem description 最大公共子串 最大公共子串長度問題就是 求兩個串的所有子串中能夠匹配上的最大長度是多少。比如 abcdkkk 和 baabcdadabc 可以找到的最長的公共子串是 abcd 所以最大公共子串長度為4。下面的程式是採用矩陣法進行求解的,這對串的規模不大的情況還...