1134 最長遞增子串行

2021-08-19 02:14:21 字數 1012 閱讀 8386

1134 最長遞增子串行

基準時間限制:1 秒 空間限制:131072 kb 分值: 0 

難度:基礎題

給出長度為n的陣列,找出這個陣列的最長遞增子串行。(遞增子串行是指,子串行的元素是遞增的)

例如:5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。

input

第1行:1個數n,n為序列的長度(2 <= n <= 50000)

第2 - n + 1行:每行1個數,對應序列的元素(-10^9 <= s[i] <= 10^9)

output

輸出最長遞增子串行的長度。
input示例

851

6824

510

output示例

5
這篇更詳細,(*^▽^*)

定義d[k]:長度為k的上公升子串行的最末元素,若有多個長度為k的上公升子串行,則記錄最小的那個最末元素。

,如果沒有,dp陣列長度+1,a[i]置於dp末尾)

#include

int a[50010];

int dp[50010];

int k=1,n;

int half(int l,int r,int x)

return l;

}int main()

printf("%d\n",k);

return 0;

或者直接使用upper_bound函式來查詢

關於upper_bound的用法和lower_bound的用法見

#include

#include

using namespace std;

int a[50010];

int dp[50010];

int k=1,n;

int main()

printf("%d\n",k);

return 0;

1134 最長遞增子串行

1134 最長遞增子串行 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出長度為n的陣列,找出這個陣列的最長遞增子串行。遞增子串行是指,子串行的元素是遞增的 例如 5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。input 第1行 1個數n,n...

1134 最長遞增子串行

給出長度為n的陣列,找出這個陣列的最長遞增子串行。遞增子串行是指,子串行的元素是遞增的 例如 5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。input 第1行 1個數n,n為序列的長度 2 n 50000 第2 n 1行 每行1個數,對應序列的元素 10 9 s i 10 ...

1134 最長遞增子串行

1134 最長遞增子串行 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出長度為n的陣列,找出這個陣列的最長遞增子串行。遞增子串行是指,子串行的元素是遞增的 例如 5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。input 第1行 1個數n,n...