线段树
mzajt123
这个作者很懒,什么都没留下…
展开
-
bzoj3956:Count
ST表+单调栈 先用单调栈O(n)处理出以每个点为左、右端点的所有的点对组数。 然后考虑询问区间,用ST表找出区间内最大点的位置,所有好的点对都不会跨越这个点 然后以最大点左边所有点为左端点的好的点对+以最大点右边所有点为右端点的好的点对便是最后的答案(前缀和处理) 今天算是复习 学习了ST表和单调栈 挺好的一道题 #include #include #include #inclu原创 2017-04-18 21:10:31 · 306 阅读 · 0 评论 -
bzoj4722: 由乃
我们发现(看题解)知道当区间长度大于13时一定可以找到两集合总贡献值相等 证明:长度为L的区间共有2^L种集合,而每个元素贡献小于等于1000(v13时2^L>1000*L 于是乎解决了第一个问题,接下来发现区间问题,那就线段树搞一搞233 ……可修改操作是将原数立方,那单重不断标记叠加就炸了…… 由于v很小,然后发现倍增可以很好解决这一问题, 设f[a][b]数组,表示a的2^b次立方原创 2017-03-30 13:30:37 · 300 阅读 · 0 评论