小朋友分糖果.
N堆糖果從左到右排成一行,編號(hào)為1到N,用一個(gè)數(shù)組表示每堆糖果的數(shù)量,其中a(i)表示第i堆糖果的數(shù)量.有K個(gè)小朋友依次從左到右取光連續(xù)的若干堆糖果.
例:有9堆糖果,數(shù)量依次是1,2,3,4,5,6,7,8,9,共有3個(gè)小朋友.
取法一:第一個(gè)小朋友取走1+2+3=6顆,第二個(gè)小朋友取走4+5+6+7=22顆,第三個(gè)小朋友取走8+9=17顆,則三個(gè)小朋友取得的最大值是22;
取法二:第一個(gè)小朋友取走1+2+3+4=10顆,第二個(gè)小朋友取走5+6+7=18顆,第三個(gè)小朋友取走8+9=17顆,則三個(gè)小朋友取得的最大值是18;
取法三:第一個(gè)小朋友取走1+2+3+4+5=15顆,第二個(gè)小朋友取走6+7=13顆,第三個(gè)小朋友取走8+9=17顆,則三個(gè)小朋友取得的最大值是17;
在以上三種取法中,三個(gè)最大值(22,18,17)中的最小值是17.
現(xiàn)在設(shè)計(jì)一個(gè)程序,求所有可能的方案的最大值的最小值是多少,請(qǐng)?jiān)趧澗€處填入合適的代碼.
算法思想簡(jiǎn)述:設(shè)Max為數(shù)量最多的一堆糖果的數(shù)量,S為所有糖果的數(shù)量總和,Ans為該問題的答案,其中Max<=Ans<=S.可以將Max,Max+1,Max+2,…,S-1,S序列中的每一個(gè)值逐一驗(yàn)證,驗(yàn)證方法為:以當(dāng)前值為當(dāng)前分配方案中小朋友得到的最大值,是否可以將糖果分給K個(gè)小朋友.在所有可行的值中,查找最小的值,即為Ans.觀察可以發(fā)現(xiàn),Max,Max+1,Max+2,…,S-1,S是一個(gè)有序的序列,可以使用對(duì)分查找找到Ans.
【考點(diǎn)】編輯事件處理過程的代碼.
【答案】見試題解答內(nèi)容
【解答】
【點(diǎn)評(píng)】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:5引用:1難度:0.3
相似題
-
1.學(xué)校舉辦了“語文作文現(xiàn)場(chǎng)賽”,參賽同學(xué)成績(jī)存儲(chǔ)在文本文件“gra.jye.ai”中,如左圖所示(每一行記錄一位同學(xué)的姓名和成績(jī),以“:”分隔)。陳老師利用Python程序?qū)ψ魑某煽?jī)進(jìn)行處理,統(tǒng)計(jì)出各個(gè)分?jǐn)?shù)等級(jí)的人數(shù),并輸出結(jié)果。程序運(yùn)行界面如右圖所示。
實(shí)現(xiàn)上述功能的Python程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。發(fā)布:2024/12/17 2:0:1組卷:6引用:2難度:0.3 -
2.有如下Python程序段:
執(zhí)行該程序段,輸入字符串“abcdefg”,則輸出的結(jié)果是( ?。?/h2>發(fā)布:2024/12/20 6:30:1組卷:2引用:3難度:0.4 -
3.試題描述的內(nèi)容:
一個(gè)單窗體VB程序的運(yùn)行界面如圖所示。下列說法正確的是( ?。?br />(1)窗體內(nèi)有1個(gè)按鈕
(2)窗體內(nèi)有2個(gè)文本框
(3)窗體內(nèi)有3個(gè)標(biāo)簽
(4)該窗體的標(biāo)題(Caption)屬性值是“加法計(jì)算器”發(fā)布:2024/12/20 20:0:2組卷:1引用:1難度:0.6
把好題分享給你的好友吧~~