N位同學(xué)站成一排,音樂老師要請其中的(N-K)位同學(xué)出列,使得剩下的K位同學(xué)不交換位置就能排成合唱隊(duì)形。合唱隊(duì)形是指這樣的一種隊(duì)形:設(shè)K位同學(xué)從左到右依次編號為1,2,…,K,他們的身高分別為T1,T2,…,TK(身高單位:厘米),則他們的身高滿足T1<T2<…<Ti,Ti>Ti+1>…>TK(1<=i<=K)。你的任務(wù)是,已知所有N位同學(xué)的身高,計(jì)算最少需要幾位同學(xué)出列,可以使得剩下的同學(xué)排成合唱隊(duì)形。
算法思路:首先計(jì)算每個數(shù)在最大遞增子串中的位置,并計(jì)算該數(shù)左側(cè)連續(xù)遞增子串的個數(shù)(包括其本身),以數(shù)列中數(shù)據(jù)a(5)160為例,它產(chǎn)生的遞增計(jì)數(shù)為2,因?yàn)槠渥畲蟮倪f增子串為{150,160};然后計(jì)算反向后每個數(shù)在最大遞減子串中的位置,并計(jì)算該數(shù)右側(cè)連續(xù)遞減子串的個數(shù)(包括其本身),以數(shù)列中數(shù)據(jù)a(5)160為例,它產(chǎn)生的遞減計(jì)數(shù)為2,因?yàn)槠渥畲蟮倪f減子串為{160,130},然后將每個數(shù)的遞增計(jì)數(shù)和遞減計(jì)數(shù)相加:數(shù)列中數(shù)據(jù)a(5)160遞增計(jì)數(shù)是2,遞減計(jì)數(shù)也為2,在計(jì)算合唱隊(duì)伍中多計(jì)算一位同學(xué),因此,以a(5)160為中心的合唱隊(duì)伍為3位同學(xué),那么至少有5位同學(xué)出列。
公式為:總?cè)藬?shù)-該數(shù)所在隊(duì)列人數(shù)+1=需要出隊(duì)的人數(shù)。
數(shù)列 | 186 | 186 | 150 | 200 | 160 | 130 | 197 | 200 |
遞增計(jì)數(shù): | 1 | 1 | 1 | 2 | 2 | 1 | 3 | 4 |
遞增計(jì)數(shù) | 3 | 3 | 2 | 3 | 2 | 1 | 1 | 1 |
每個數(shù)在所在隊(duì)列的人數(shù) | 4 | 4 | 3 | 5 | 4 | 2 | 4 | 5 |
186 | 186 | 150 | 200 | 160 | 130 | 197 | 200 |
(1)現(xiàn)有以下11位同學(xué),身高分別為195,186,188,174,175,198,160,198,200,195,162厘米,按
照以上算法思路,最少需要
5
5
位同學(xué)出列,可以使得剩下的同學(xué)排成合唱隊(duì)形。(2)為實(shí)現(xiàn)以上功能,同學(xué)的身高數(shù)據(jù)從stuh。mdb數(shù)據(jù)庫中數(shù)據(jù)表讀取,身高數(shù)據(jù)存放于數(shù)據(jù)表第三個字段中,該字段的數(shù)據(jù)類型為整型。請?jiān)跈M線處填入合適的代碼
【考點(diǎn)】編輯事件處理過程的代碼.
【答案】5
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:1引用:1難度:0.4
相似題
-
1.根據(jù)AQI值判斷城市的空氣質(zhì)量。若城市的AQI值(整數(shù))不超過100則空氣質(zhì)量優(yōu)良,否則空氣質(zhì)量有污染。當(dāng)輸入的AQI值為-1時則退出程序。不要更改程序結(jié)構(gòu),將題中的①②③④填入正確的語句。
city=input(“請輸入城市名:”)
AQI=int(input(“請輸入空氣質(zhì)量指數(shù)AQI的值:”))
①______ AQI!=-1:
if ②______:
print(city,“的空氣質(zhì)量優(yōu)良?!保?br />③______:
print(city,“的空氣質(zhì)量有污染?!保?br />city=input(“請輸入城市名:”)
AQI=④(input(“請輸入空氣質(zhì)量指數(shù)AQI的值:”))
(1)序號①答案為
A.if
B.while
C.for
D.def
(2)序號②答案為
A.AQI>=100
B.AQI<=100
C.AQI>100
D.AQI<100
(3)序號③答案為
A.elif
B.break
C.if
D.else
(4)序號④答案為
A.int
B.float
C.str
D.else發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4 -
2.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再下落。編寫一個C程序,求它在第10次落地時,其經(jīng)過了多少米?第10次反彈多高?
發(fā)布:2025/1/2 11:0:1組卷:0引用:3難度:0.3 -
3.利用海倫公式求解三角形面積。已知a,b,c為三角形的三條邊長,p為三角形的半周長,即p=(a+b+c)/2,計(jì)算此三角形面積S的海倫公式為:。不要更改程序結(jié)構(gòu),將題中的①②③填入正確的語句。
import math#導(dǎo)入數(shù)學(xué)模塊
def hl(a,b,c):#定義求三角形面積的函數(shù)
p=①
s=math.jye.ai(②)#sqrt用于計(jì)算算術(shù)平方根
return ③#返回面積的值
a,b,c=3,4,5#邊長依次賦值
print(“此三角形的面積S為:“,hl(a,b,c))
A. (a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C. (a+b+c)*2 D.s
(2)序號②答案為
A.(a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C.(a+b+c)*2 D.(3+4+5)/2
(3)序號③答案為
A.p B.s
C.p*(p-a)*(p-b)*(p-c) D.0發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4
把好題分享給你的好友吧~~