題目描述:
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 你的任務是,已知所有...