![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【数据结构】堆
文章平均质量分 82
mysterynoip
蒟蒻OIer
展开
-
bzoj 2151 种树 贪心+堆
题面 题目传送门 解法 堆用来撤销之前操作的经典应用 显然可以选择dp,但是复杂度好像不太对,应该是O(nm)O(nm)O(nm)的 一个比较显然的贪心是,每一次选择最大的那一个,然后一直这样取下去 很明显, 这个贪心是错误的:19 20 19 1 按照上面的贪心策略,我们会先选择20,然后再选择1。显然,这个方案没有19+19优 所以,我们现在要考虑如何“撤销”之前错误的选择方案 ...原创 2018-08-24 14:16:29 · 213 阅读 · 0 评论 -
bzoj 1095 [ZJOI2007]Hide 捉迷藏 动态点分治+堆/线段树
题面 题目传送门 解法 数据结构题…… 讲一下两种不同的思路吧,用括号序列怎么做我不会 因为有修改并且有关于点之间距离的询问,所以我们考虑动态点分治 首先建出点分树,然后每一个点开两个堆。“第一个堆记录子树中所有节点到父亲节点的距离,第二个堆记录所有子节点的堆顶,那么一个节点的堆2中的最大和次大加起来就是子树中经过这个节点的最长链。然后我们最后开一个全局的堆,记录所有堆2中最大值和次...原创 2018-09-15 16:41:55 · 186 阅读 · 0 评论 -
bzoj 1396 识别子串 & bzoj2865 字符串识别 后缀数组+线段树
题面 题目传送门 双倍经验传送门 解法 解法全靠yy…… 显然我们可以先构造出后缀数组。我们令len[i]=max(height[rnk[i]],height[rnk[i]+1])len[i]=max(height[rnk[i]],height[rnk[i]+1])len[i]=max(height[rnk[i]],height[rnk[i]+1]),表示从iii开始长度超过len[i]len[...原创 2018-11-21 21:25:37 · 294 阅读 · 0 评论