HDU 2836 Traversal(線段樹+離散化+DP)
題意:給你n個數的序列, 一個數h, 求相鄰數之差不超過h的子序列的個數和 % 9901。
思路:經典水題, 顯然用d[i]表示以a[i]結尾的滿足條件的子序列個數。 那麼對於j < i , | a[j] - a[i] | <= h , 等價於 a[j] <= a[i] + h && a[j] >= a[i] - h。 對於這個限制用線段樹下標維護, 線段樹用來維護d[i]的累加和。
細節參見代碼:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include