51Nod 1134 最長遞增子串行

2022-07-30 01:48:16 字數 914 閱讀 3116

動態規劃

修改 隱藏話題

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

李陶冶(題目提供者)

c++的執行時限為:1000 ms ,空間限制為:131072 kb 示例及語言說明請按這裡

使用陣列來儲存a[i]的最長遞增子數列

用pos記錄在dp陣列裡面a[i]小於dp的位置,並將a[i]按順序儲存在dp中 

檢視lower_bound的返回值詳解

#includeusing namespace std;

const int maxn=50000+10;

int a[maxn],dp[maxn];

int main()

{ int n,i;

cin>>n;

for(i=0;i>a[i];

memset(dp,0,sizeof(0));

dp[0]=a[0];

int pos;

int sum=1;

for(i=1;i

51nod 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為序列的長度 2 ...

51nod 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...

51nod1134 最長遞增子串行

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