洛谷 P1091 合唱隊形 題解(最長單調子串行)

2021-09-19 19:36:00 字數 1400 閱讀 7460

nn位同學站成一排,**老師要請其中的(n-kn−k)位同學出列,使得剩下的kk位同學排成合唱隊形。

合唱隊形是指這樣的一種隊形:設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),表示同學的總數。

第二行有nn個整數,用空格分隔,第ii個整數t_i(130 \le t_i \le 230)ti​(130≤ti​≤230)是第ii位同學的身高(厘公尺)。

輸出格式:

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

輸入樣例#1:複製

8

186 186 150 200 160 130 197 220

輸出樣例#1:複製

4
#include#include #include  #include  #include  #include   #include   #include   #include   #include    #include    #include      #include      typedef long long ll;

typedef long double ld;

typedef unsigned long long ull;

#define sz(x) ((int)x.size())

#define rep(i,a,n) for (int i = a; i < n; ++i)

#define per(i,a,n) for (int i = n-1; i >= a; --i)

#define devil_may_cry ios::sync_with_stdio(false);

using namespace std;

//head

constexpr int maxn = 110;

int a[maxn], f[maxn], df[maxn];

int main()

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

}//cout << f[n] << " " << df[1] << endl;

rep(i, 1, n + 1)

cout << n - maxa << endl;

return 0;

}

洛谷 P1091 合唱隊形

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

洛谷 P1091 合唱隊形

p1091 合唱隊形 2k 通過 4.8k 提交 題目提供者洛谷onlinejudge 標籤 noip提高組 2004 雲端評測 難度 普及 提高 提交 討論 題解 最新討論 描述是啥玩意?不能加檔案讀 參考,絕對ac,fighting 動 參考 資料太大了 n 1000 題目描述 n位同學站成一排...

洛谷P1091合唱隊形

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