藍橋杯第八屆真題:分巧克力

點擊查看:藍橋杯歷年真題 題解目錄

分巧克力在這裏插入圖片描述

1.如果單獨的使用逐個循環暴力,必超時
2.使用二分法降低複雜度 直到 l=r=mid ,得出最終結果
import java.util.Scanner;
public class Main009_分巧克力 {
    public static void main(String[] args) {
  	Scanner in = new Scanner(System.in);
  	int n = in.nextInt();
  	int k = in.nextInt();
  	int []h = new int[n];
  	int []w = new int[n];
  	for(int i=0;i<n;i++) {
   	    h[i]=in.nextInt();
            w[i]=in.nextInt();
  	}
  	int l = 1,r=100001,ans=0;
  	while(l<=r) {
   	    int count=0;
   	    int mid=(l+r)/2;
   	    for(int i=0;i<n;i++) {
    	        count += (h[i]/mid)*(w[i]/mid);
   	    }
   	    if(count>=k) {
    	        l=mid+1;
    	        ans = mid;
   	    }else {
    	        r=mid-1;
   	    }
        }
        System.out.println(ans);
    }
}

在這裏插入圖片描述

發佈了110 篇原創文章 · 獲贊 21 · 訪問量 8752
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章