單調遞增子串行(二)
時間限制: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表示序列中共...