1916 Problem C 合唱隊形

2021-09-02 14:05:16 字數 1027 閱讀 1031

時間限制: 1 sec  記憶體限制: 32 mb

提交: 65  解決: 33

[提交][狀態][討論版][命題人:外部匯入]

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位同學的身高(厘公尺)。

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

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

3

174 208 219

6145 206 193 171 187 167

0

0

1

#include#includeusing namespace std;

//dp[i]為以i作中間數左側遞增的最大數量

//dp2[i]為以i作中間數右側遞減的最大數量

int main() , dp2[110] = ;

for (int i = 0; i < n; i++)

for (int i = 0; i < n; i++)

} for (int i = n - 1; i >= 0; i--)

dp[i] = dp[i] + dp2[i] + 1;

} cout << n - *max_element(dp, dp + n) << endl;

} return 0;

}

合唱隊 華為

計算最少出列多少位同學,使得剩下的同學排成合唱隊形 說明 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2 k,他們的身高分別為t1,t2,tk,則他們的身高滿足存在i 1 i k 使得t1ti 1 ...

華為OJ合唱隊

描述 計算最少出列多少位同學,使得剩下的同學排成合唱隊形 說明 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2 k,他們的身高分別為t1,t2,tk,則他們的身高滿足存在i 1 i k 使得titi...

華為oj 合唱隊

這個題目可以分解成正序和逆序的最大上公升子串行的問題來處理,對每個數字存放以當前數字為結尾時的最大上公升子串行數,只需要對前面的每個數進行比較,找到比當前數字小的數字,並且上公升子串行長度最大的作為當前的最大值,即for i 1 ia j dp j 1 dp i dp i dp j 1 最後對每個數...