【題目地址】
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3349
【題目大意】
一個長度爲n的序列,求一個長度最大的子序列(不一定連續),滿足相鄰兩個元素的差的絕對值不超過給定的d。
Sample Input
5 2 1 4 3 6 5 5 0 1 2 3 4 5
Sample Output
3 1
【解題思路】
從左到右掃描,並維護一個線段樹(區間樹),記錄當前以某個數結尾的最長子序列的長度,每次都update_max(a, query_max(a – d, a + d) + 1)就好了,最後答案是query_max(-inf, inf)。由於元素的值的範圍很大,要離散化。
【代碼】