传送门
简单树状数组优化dp。
注意到k很小提示我们搜 ( d ) (d) (d)索 ( p ) (p) (p)。
先按第一维排序。
用 f [ i ] [ j ] [ 0 / 1 ] f[i][j][0/1] f[i][j][0/1]表示第i个点结尾,有j段单调区间,最后一段单调递增/递减的方案数。
然后有 f [ i ] [ j ] [ 0 ] = ∑ f [ i ′ ] [ j ] [ 0 ] + ∑ f [ i ′ ′ ] [ j − 1 ] [ 1 ] f[i][j][0]=\sum f[i'][j][0]+\sum f[i''][j-1][1] f[i][j][0]=∑f[i′][j][0]+∑f[i′′][j−1][