NYOJ 214 單調遞增子串行 二

2021-06-21 10:49:26 字數 676 閱讀 3484

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

例如:x = 5,dp【】 = , 則列舉過x 之後,dp = ,

x = 5, dp = , 則列舉過x 之後,dp =

在查詢x  在dp  陣列中位子的時候可以用二分法, 也可以用stl中的lower_bound()。

#include#include#include#include#includeusing namespace std;

int a[100010],dp[100010];

int inf = 0x7fffffff;

int binary_search(int x,int len)

return left;

}int main()

cout<#include#include#include#includeusing namespace std;

int stack[100010];

int inf = 0x7fffffff;

int main()

else

stack[left] = x;}}

cout<

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個整數,表示數...

nyoj 214 單調遞增子串行 二

記憶體限制 64mb 時間限制 1000ms special judge no accepted 3 submit 16 給定一整型數列 0 如 1 9 10 5 11 2 13的最長單調遞增子串行是1 9 10 11 13,長度為5。有多組測試資料 7 每組測試資料的第一行是乙個整數n表示序列中共...