九度OJ 題目1131 合唱隊形

2021-09-12 20:51:09 字數 1188 閱讀 1276

題目描述:

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

合唱隊形是指這樣的一種隊形:設k位同學從左到右依次編號為1, 2, …, k,他們的身高分別為t1, t2, …, tk,

則他們的身高滿足t1 < t2 < … < ti , ti > ti+1 > … > tk (1 <= i <= k)。

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

輸入:

輸入的第一行是乙個整數n(2 <= n <= 100),表示同學的總數。

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

輸出:

可能包括多組測試資料,對於每組資料,

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

樣例輸入:

8186 186 150 200 160 130 197 220

樣例輸出:

4思路:

最少挑出幾人,即立下的合唱隊形,最長多長

合唱隊形,從兩頭看分別是乙個遞增子串行,只是本題要求兩頭加起來最長,從兩個方向,分別查詢最長遞增子串行,兩頭求和取最大值

#include

intmain()

int num1[

101]

;int num2[

101]

; num1[1]

=1; num2[n]=1

;for

(int i=

2;i<=n;i++

) num1[i]

=max;

}for

(int i=n-

1;i>=

1;i--

) num2[i]

=max;

}int cnt=0;

for(

int i=

1;i<=n;i++

)printf

("%d\n"

,n-cnt);}

return0;

}

九度OJ 1131 合唱隊形

這是一道最長遞增子串行加強版。只需計算以a i 為結尾的最長遞增子串行,以a i 為開頭的最長遞減子串行 這個實際就是逆序後的以a i 為結尾最長遞增子串行嘛!兩個部分 for i 1 ia j f1 j 1 max f1 i max for i n 2 i 0 i f2 i max 我一開始犯了乙...

九度 1131 合唱隊形

題目1131 合唱隊形 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 3549 解決 1104 題目描述 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學不交換位置就能排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2,k,他們的身高分...

1131 合唱隊形

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