nyoj 214 單調遞增子串行 二 最優解

2021-07-04 06:40:14 字數 662 閱讀 7635

時間限制:1000 ms  |           記憶體限制:65535 kb

難度:4 描述

給定一整型數列(0

如:1 9 10 5 11 2 13的最長單調遞增子串行是1 9 10 11 13,長度為5。

輸入有多組測試資料(<=7) 每組測試資料的第一行是乙個整數n表示序列中共有n個整數,隨後的下一行裡有n個整數,表示數列中的所有元素.每個整形數中間用空格間隔開(0

輸出對於每組測試資料輸出整形數列的最長遞增子串行的長度,每個輸出佔一行。

樣例輸入

7

1 9 10 5 11 2 13

22 -1

樣例輸出

5

1

//山峰法 :不管其他的,只記錄那個最長的元素序列,中間有替換,就是如果要比較的這個元素大於最後的元素的話

//那麼久將序列長度變長;但是如果小於的話,那麼就查詢到最接近的且大於這個元素的元素替換成這個元素

#include

#include

int a[100001],dp[100001];

int main()

else

else if(a[i]

//思路鏈結,同思路例題

每一步,只為明天,c學者,我們一起加油!!!

NYOJ 214 單調遞增子串行 二

先開設乙個陣列dp 然後從第乙個數開始列舉,和dp 陣列中的最後乙個元素end 進行比較,如果大於end 直接把這個數接到end 的後面,並且把end 更新為列舉的這個數。如果不大於edn 在dp 陣列中找到第乙個大於這個數的位子 k,並用這個數 替換掉dp k 例如 x 5,dp 則列舉過x 之後...

NYOJ 214 單調遞增子串行 二

單調遞增子串行 二 時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 給定一整型數列 0如 1 9 10 5 11 2 13的最長單調遞增子串行是1 9 10 11 13,長度為5。輸入 有多組測試資料 7 每組測試資料的第一行是乙個整數n表示序列中共有n個整數,隨後的下一行裡...

nyoj 214 單調遞增子串行 二

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 給定一整型數列 0 如 1 9 10 5 11 2 13的最長單調遞增子串行是1 9 10 11 13,長度為5。輸入 有多組測試資料 7 每組測試資料的第一行是乙個整數n表示序列中共有n個整數,隨後的下一行裡有n個整數,表示數...