NYOJ 214 單調遞增子串行 二

2021-07-10 16:00:34 字數 808 閱讀 6384

單調遞增子串行(二)

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

難度:4

描述 給定一整型數列(0如:1 9 10 5 11 2 13的最長單調遞增子串行是1 9 10 11 13,長度為5。

輸入 有多組測試資料(<=7)

每組測試資料的第一行是乙個整數n表示序列中共有n個整數,隨後的下一行裡有n個整數,表示數列中的所有元素.每個整形數中間用空格間隔開(0資料量很大,又要求一秒以內,僅僅是簡單的動規已經無法滿足要求了,還需要二分查詢。

注意num陣列並不是存前i位最長公升序子串行長度的,他是用來輔助查詢的

**

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

int str[100005];//儲存資料

int num[100005];//動規陣列

int n;//資料數量

int search(int x,int len)//傳入查詢元素和右邊界

return left;

}int main()

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

}return0;}

快十二點了,洗洗睡吧

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個整數,隨後的下一行裡有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表示序列中共...