時間限制: 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 最後對每個數...