摘要: CF484E. Sign on Fence "CF484E. Sign on Fence" 题目大意 给你n块木板,每块木板有高度Hi,q次询问每次询问在[l,r]区间中最大的长度为w的区间的最小值。 思路 将木板从大到小排序,建动态开点线段树维护区间最长子段,于是就可以二分高度,判断这个高度在[l 阅读全文
posted @ 2019-05-09 01:10 Seast 阅读(210) 评论(0) 推荐(0) 编辑
摘要: bzoj2006: [NOI2010]超级钢琴 "bzoj2006: 超级钢琴" 思路 对所有前缀和建权值线段树,先将所有右端点对应的最大的左端点丢进优先队列里,每次将优先队列队首的区间取出来后,将rk[r]++,从这个右端点对应的主席树区间中找到排名第rk[r]的值丢进优先队列,相当于用主席树求区 阅读全文
posted @ 2019-05-09 01:01 Seast 阅读(113) 评论(0) 推荐(0) 编辑
摘要: bzoj3956: Count(主席树+单调栈) "bzoj3956: Count" 思路 对友好点对建边的话,可以看出最多只有2n条边,先用单调栈使所有左端点记录右端点,然后对左端点前缀建权值主席树,查询的时候只要判断T[r] T[l 1] 这颗主席树中有多少点在[l,r]这段区间就行了。 代码 阅读全文
posted @ 2019-05-09 00:20 Seast 阅读(158) 评论(0) 推荐(0) 编辑