日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态规划练习2 [合唱队形]

發布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划练习2 [合唱队形] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
N 位同學站成一排,音樂老師要請其中的 (N-K) 位同學出列,使得剩下的 K 位同學排成合唱隊形。
合唱隊形是指這樣的一種隊形:設
K 位同學從左到右依次編號為 1 2 …, K ,他們的身高分別為 T1
T2 ,…, TK , 則他們的身高滿足 T1<...<Ti>Ti+1> >TK(1<=i<=K)
你的任務是,已知所有
N 位同學的身高,計算最少需要幾位同學出列,可以使得剩下的同學排成合唱
隊形。
【輸入文件】
輸入文件
chorus.in 的第一行是一個整數 N(2<=N<=100) ,表示同學的總數。第二行有 n 個整數,
用空格分隔,第
i 個整數 Ti(130<=Ti<=230) 是第 i 位同學的身高 ( 厘米 )
【輸出文件】
輸出文件
chorus.out 包括一行,這一行只包含一個整數,就是最少需要幾位同學出列。
【樣例輸入】
8
186 186 150 200 160 130 197 220
【樣例輸出】
4
【數據規模】
對于
50 %的數據,保證有 n<=20

對于全部的數據,保證有 n<=100


思路:

枚舉最中間的那個同學,然后對其左邊的同學身高序列求最長上升子序列,對其右邊的身高序列求最長下降子序列,則兩部分的長度之和加上1就是以該同學為中心的合唱隊形的長度。事實上,并非需要每次都求上升序列和下降序列長度,只需要在一開始從左邊求一次最長上升序列用rise[i]表示序列[1...i],并且以a[i]為結尾的最長上升序列長度。從右邊開始求一次最長下降序列長度down[i]表示[i...n]中以a[i]為開頭的最長下降序列長度。這樣的話,隊形長度就是max{rise[i]+down[i]-1}

總結

以上是生活随笔為你收集整理的动态规划练习2 [合唱队形]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。