一眼dp
设(f_i)表示前(i)个且(i)必须选的最大功率
有
(f _i= max_{1 leq j < i,A_i - A_j > X_j} {f_j }+p_i)
下面的条件
(A_i - A_j > X_j)
相当于
(X_j + A_j < A_i)
(X_j + A_j +1 leq A_i)
设(g(i)= X_i +A_i +1)
发现对于一个(i)来说(g(i))是确定的
那我们可以用一个数据结构来维护
考场上用的树状数组,需要先预处理出(g(i))然后离散化
复杂度(O(NlogN))
和暴力(N^2)对了30min竟然没问题
造了个大数据发现输出INF……检查发现树状数组查询的返回值没开long long,好险啊
实际上不需要数据结构,只需要对于每台机器二分一下影响不到的最后的位置,然后倒着DP就可以了