百煉2711 合唱隊形(最長上公升子串行)

2021-09-26 07:16:44 字數 977 閱讀 5399

description

n位同學站成一排,**老師要請其中的(n-k)位同學出列,使得剩下的k位同學不交換位置就能排成合唱隊形。

合唱隊形是指這樣的一種隊形:設k位同學從左到右依次編號為1, 2, …, k,他們的身高分別為t1, t2, …, tk,則他們的身高滿足t1 < t2 < … < ti , ti > ti+1 > … > tk (1 <= i <= k)。

你的任務是,已知所有n位同學的身高,計算最少需要幾位同學出列,可以使得剩下的同學排成合唱隊形。

input

輸入的第一行是乙個整數n(2 <= n <= 100),表示同學的總數。第一行有n個整數,用空格分隔,第i個整數ti(130 <= ti <= 230)是第i位同學的身高(厘公尺)。

output

輸出包括一行,這一行只包含乙個整數,就是最少需要幾位同學出列。

sample input

8186 186 150 200 160 130 197 220

sample output

思路正反兩次 lis,dp[i] = dp正[i]+dp反[i]-1;

**

#include

#include

using namespace std;

int a[

105]

,dpz[

105]

,dpf[

105]

;int

main

(void

)for

(int i =

1;i)for

(int i = n-

2;i>=

0;i--

)for

(int i =

0;i)sort

(dpz,dpz+n)

;printf

("%d\n"

,n-dpz[n-1]

);}return0;

}

合唱隊形 最長上公升子串行變形

一 思路 感覺自己好笨 雖然知道是求兩次最長上公升子串行,一邊上公升,一邊下降 我愣是理解成了,寫兩個,都是順序來,乙個是求順序的最長上公升 乙個是順序的最長下降 怎麼除錯都是20 40個得分點 鬱悶了求兩次 成開口向下的拋物線 順序求上公升 逆序求上公升 然後求max aup i areverse...

線性dp 合唱隊形 最長上公升子串行模型

相關 線性dp 最長上公升子串行 模板題 最長上公升子串行模型 線性dp 怪盜基德的滑翔翼 最長上公升子串行模型 強相關 線性dp 登山 最長上公升子串行模型 482.合唱隊形 重點 線性dp lis問題 思路 本題為noip2004提高組原題。正反兩遍再求和 include include usi...

P1091 合唱隊形 (最長上公升子串行正反利用)

n n 位同學站成一排,老師要請其中的 n kn k 位同學出列,使得剩下的 k k 位同學排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為 1,2,k1,2,k 他們的身高分別為 t 1,t 2,t kt1 t2 tk 則他們的身高滿足 t 1 t t k 1 le i le...