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

2021-08-21 10:39:29 字數 1090 閱讀 6364

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 k)t1

​<..

.​>ti

+1​>

…>tk

​(1≤

i≤k)

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

輸入格式:

共二行。

第一行是乙個整數 n(2 \le n \le 100)n(

2≤n≤

100)

,表示同學的總數。

第二行有 n

n 個整數,用空格分隔,第 i

i 個整數 t_i(130 \le t_i \le 230)ti

​(13

0≤ti

​≤23

0)是第 i

i 位同學的身高(厘公尺)。

輸出格式:

乙個整數,最少需要幾位同學出列。

輸入樣例#1:

複製

8

186 186 150 200 160 130 197 220

輸出樣例#1:

複製

4

對於50%的資料,保證有 n \le 20n≤

20;對於全部的資料,保證有 n \le 100n≤

100 

#include#includeusing namespace std;

int main()

}for(i=1;i<=n;i++)

ans=max(ans,dp1[i]+dp2[i]-1); //i是匯集點

printf("%d\n",n-ans); //總人數減剩下的人數

return 0;

}

P1091 合唱隊形

n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2 k,他們的身高分別為t1,t2,tk,則他們的身高滿足t1 ti 1 tk 1 i k 你的任務是,已知所有n位同學的身高,計算最少需要幾位同學出列,...

P1091 合唱隊形

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

P1091 合唱隊形

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