Problem 1049: Lost My Music【可持久化栈+倍增】
首先要求的式子是一个斜率的相反数,其实就是求斜率的最大值,那么我们只需维护一个下凸包即可,
考虑到直接用栈来存,如果是在一条链上的话可以保证每个数只会被插入弹出一次,直接做,暴力退栈就行了。
然而在树上暴力退的话会被卡成O(N2N^2)……
所以对于每个点存一个倍增数组,记录其在凸壳里的祖先,然后乱搞即可……
代码://#include <bits/stdc++.h>
#include <c
原创
2017-11-30 11:25:37 ·
478 阅读 ·
0 评论