N位同學站成一排,音樂老師要請其中的(N-K)位同學出列,使得剩下的K位同學不交換位置就能排成合唱隊形。合唱隊形是指這樣的一種隊形:設(shè)K位同學從左到右依次編號為1,2,…,K,他們的身高分別為T1,T2,…,TK(身高單位:厘米),則他們的身高滿足T1<T2<…<Ti,Ti>Ti+1>…>TK(1<=i<=K)。你的任務(wù)是,已知所有N位同學的身高,計算最少需要幾位同學出列,可以使得剩下的同學排成合唱隊形。
算法思路:首先計算每個數(shù)在最大遞增子串中的位置,并計算該數(shù)左側(cè)連續(xù)遞增子串的個數(shù)(包括其本身),以數(shù)列中數(shù)據(jù)a(5)160為例,它產(chǎn)生的遞增計數(shù)為2,因為其最大的遞增子串為{150,160};然后計算反向后每個數(shù)在最大遞減子串中的位置,并計算該數(shù)右側(cè)連續(xù)遞減子串的個數(shù)(包括其本身),以數(shù)列中數(shù)據(jù)a(5)160為例,它產(chǎn)生的遞減計數(shù)為2,因為其最大的遞減子串為{160,130},然后將每個數(shù)的遞增計數(shù)和遞減計數(shù)相加:數(shù)列中數(shù)據(jù)a(5)160遞增計數(shù)是2,遞減計數(shù)也為2,在計算合唱隊伍中多計算一位同學,因此,以a(5)160為中心的合唱隊伍為3位同學,那么至少有5位同學出列。
公式為:總?cè)藬?shù)-該數(shù)所在隊列人數(shù)+1=需要出隊的人數(shù)。
數(shù)列 | 186 | 186 | 150 | 200 | 160 | 130 | 197 | 200 |
遞增計數(shù): | 1 | 1 | 1 | 2 | 2 | 1 | 3 | 4 |
遞增計數(shù) | 3 | 3 | 2 | 3 | 2 | 1 | 1 | 1 |
每個數(shù)在所在隊列的人數(shù) | 4 | 4 | 3 | 5 | 4 | 2 | 4 | 5 |
186 | 186 | 150 | 200 | 160 | 130 | 197 | 200 |
(1)現(xiàn)有以下11位同學,身高分別為195,186,188,174,175,198,160,198,200,195,162厘米,按
照以上算法思路,最少需要
5
5
位同學出列,可以使得剩下的同學排成合唱隊形。(2)為實現(xiàn)以上功能,同學的身高數(shù)據(jù)從stuh。mdb數(shù)據(jù)庫中數(shù)據(jù)表讀取,身高數(shù)據(jù)存放于數(shù)據(jù)表第三個字段中,該字段的數(shù)據(jù)類型為整型。請在橫線處填入合適的代碼
【考點】編輯事件處理過程的代碼.
【答案】5
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:1引用:1難度:0.4
相似題
-
1.學校舉辦了“語文作文現(xiàn)場賽”,參賽同學成績存儲在文本文件“gra.jye.ai”中,如左圖所示(每一行記錄一位同學的姓名和成績,以“:”分隔)。陳老師利用Python程序?qū)ψ魑某煽冞M行處理,統(tǒng)計出各個分數(shù)等級的人數(shù),并輸出結(jié)果。程序運行界面如右圖所示。
實現(xiàn)上述功能的Python程序如下,請在劃線處填入合適的代碼。發(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)容:
一個單窗體VB程序的運行界面如圖所示。下列說法正確的是( )
(1)窗體內(nèi)有1個按鈕
(2)窗體內(nèi)有2個文本框
(3)窗體內(nèi)有3個標簽
(4)該窗體的標題(Caption)屬性值是“加法計算器”發(fā)布:2024/12/20 20:0:2組卷:1引用:1難度:0.6
把好題分享給你的好友吧~~