国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

藍橋杯上岸每日N題第一期(二)?。。?/h1>

這篇具有很好參考價值的文章主要介紹了藍橋杯上岸每日N題第一期(二)?。。?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

大家好 我是寸鐵??

考前需要刷大量真題,大家一起相互監(jiān)督,每日做N題,一起上岸吧?? ~

第一期(二)

題目:分巧克力 ?

考點:二分 ??

該題目類型會同時收錄在相關(guān)復(fù)習(xí)專題,供大家學(xué)習(xí)

收錄??

藍橋杯上岸必背?。?!(持續(xù)更新中~)

不清楚藍橋杯考什么的點點下方??

考點秘籍

想背純享模版的伙伴們點點下方??

藍橋杯省一你一定不能錯過的模板大全(第一期)

藍橋杯省一你一定不能錯過的模板大全(第二期)

想背注釋模版的伙伴們點點下方??

藍橋杯必背第一期

藍橋杯必背第二期

往期精彩回顧

藍橋杯上岸每日N題 第一期(一)?。?!

操作系統(tǒng)期末題庫 第九期(完結(jié))

LeetCode Hot100 刷題(第三期)

idea創(chuàng)建SpringBoot項目報錯解決方案

數(shù)據(jù)庫SQL語句(期末沖刺)

想看JavaB組填空題的伙伴們點點下方 ??

填空題

二分

二分出答案!

怎么二分出答案?

這道題我們可以得出的是二分的結(jié)果是滿足k塊巧克力的最大邊長是多少?
題目要求:
1.形狀是正方形,邊長是整數(shù)
2.大小相同
即要求邊長均為x
我們就可以確保得到邊長一致的正方形
大小相同即分出的塊數(shù)為整數(shù),向下取整?。?!
得到能夠湊出的整塊巧克力
如果分出的塊數(shù)有小數(shù)的大小肯定不同。

長、寬分別為H、W
塊數(shù):(H/x)*(W/x)

為什么是這么多塊?

相同的x
我們可以發(fā)現(xiàn)長為H
可以被切成H/x
我們可以發(fā)現(xiàn)寬為W
可以被切成W/x
這么多塊的組合起來為(H/x)*(W/x)這么多塊

那我們推出這個公式后,我們怎么利用二分來處理這道題?

我們知道二分一般情況下需要具有二段性/單調(diào)性
即確定一個mid后,兩邊是否具有二段性/單調(diào)性
假設(shè)k=(H/x)*(W/x)
我們根據(jù)公式發(fā)現(xiàn)(H/x)*(W/x)H、W常量
x變量,且隨著x增大,k值是越來越小的。
而隨著x減小,k值是越來越大的
中間必定存在k使得x最大
這即是我們需要的二段性。
畫出圖形應(yīng)該是單調(diào)遞減的曲線
x是我們要二分的答案

更進一步我們可以發(fā)現(xiàn)
假設(shè)我們在x的條件下剛好二分出k塊的巧克力。
由上證明,比x小的也一定滿足可以條件,可以分出大于k塊巧克力。
我們讓l右移讓他往右邊去找,k塊巧克力下邊長盡可能的大
l=mid;
x大的一定不滿足條件,不足以分出k塊巧克力。
我們r左移讓他往左邊去找,k塊巧克力下邊長盡可能的大
r=mid-1;

二分出的k塊巧克力下的x必定是滿足k塊的最大邊長!?。?/h3>

Accode

import java.util.*;
public class Main{
    static int N=100010;
    static int cake[][]=new int[N][2];
    //輸入是N行2列
    //不要開N行N列用不到的空間會MLE
    static int n,m,k;
    public static void main(String []args){
        Scanner sc=new Scanner(System.in);
         n=sc.nextInt();
         k=sc.nextInt();        
        for(int i=0;i<n;i++){
            cake[i][0]=sc.nextInt();
            cake[i][1]=sc.nextInt();
        }
        //答案確保所得至少1*1
        //邊長最小為1
        //二分的左邊界為1
        //右邊界為最大邊長1e5
        int l=1;
        int r=(int)1e5;
        while(l<r){
            int mid=l+r+1>>1;
            if(check(mid))l=mid;
            //mid下的塊>=k則l右移l=mid
            //注意mid是滿足>=k所以是l=mid
            
            //與之對應(yīng)的是r=mid-1
            //因為此時check(mid)<k
            //所以需要往左移且mid不滿足條件
            //所以r=mid-1
            else r=mid-1;
        }
        System.out.println(l);
    }
    public static boolean check(int m){
        int res=0;
        for(int i=0;i<n;i++){
            res+=(cake[i][0]/m)*(cake[i][1]/m);
        //統(tǒng)計能分出的塊數(shù)
        }
        //塊數(shù)>=k說明是需要將邊長邊大塊數(shù)減少
        //即l=mid;
        if(res>=k)return true;
        //反之則說明不足k塊需要將邊長減小塊數(shù)增大
        //即r=mid-1
        return false;
    }
}

????????????
后續(xù)有補充,持續(xù)更新中??
喜歡的伙伴點點贊,關(guān)個注??文章來源地址http://www.zghlxwxcb.cn/news/detail-579504.html

到了這里,關(guān)于藍橋杯上岸每日N題第一期(二)?。?!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包