洛谷 P1091 合唱隊形(最長遞增子串行)

2021-10-09 11:28:45 字數 832 閱讀 5794

最長遞增子串行

本題要點:

1、left[i] 表示以i為結尾的最長嚴格遞增子串行長度

right[i] 表示以i 為開頭的最長嚴格遞減子串行長度

2、遍歷 1 <= i <= n , 取 left[i] + right[i] - 1 的最大值。

3、這裡計算 right 陣列時候,把 身高陣列 h 的資料翻轉過來了,

這樣子算的是 以 第 i 個結尾的最長嚴格遞增子串行。

#include

#include

#include

#include

using

namespace std;

const

int maxn =

110;

int h[maxn]

, left[maxn]

, right[maxn]

;int n;

void

calc

(int b,

int n)

} b[i]

= max_h +1;

}}void

solve()

calc

(right, n)

;int ans =0;

for(

int i =

1; i <= n;

++i)

printf

("%d\n"

, n - ans);}

intmain()

/*8186 186 150 200 160 130 197 220

*//*

4*/

洛谷 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位同學的身高,計算最少需要幾位同學出列,...