摘要: 考虑维护f[k][x]表示“最低k位所表示的数不大于x”的数的个数。那么查询时答案就为f[k][2k-1]-f[k][2k-1-1]。 同时记录每个数在集合中出现多少次。这样的话插入、删除已经解决了,只剩下加操作。考虑对每一个k都将加操作带来的影响累计作为偏移量就可以了。 明明不知道在写什么结果1A 阅读全文
posted @ 2018-09-03 20:31 Gloid 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 与中位数有关的题二分答案是很常用的trick。二分答案之后,将所有大于它的看成1小于它的看成-1,那么只需要判断是否存在满足要求的一段和不小于0。 由于每个位置是1还是-1并不固定,似乎不是很好算。考虑暴力一点的想法:对于每一种答案预处理。这样查询就很好办了,线段树上每个区间维护最大前缀和后缀和及总 阅读全文
posted @ 2018-09-03 16:06 Gloid 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 将边权平均分到两顶点,按点权从大到小取即可。这样的话如果某人取到两点则获得边权,否则对两人均无影响,并且最后每条边都会处于其中的一种情况。假装证明了正确性。 阅读全文
posted @ 2018-09-03 01:58 Gloid 阅读(106) 评论(0) 推荐(0) 编辑