摘要: 这题需要一点思维转化,感觉还是挺有意思的。 我们仔细观察选点的要求,发现,根要小于左右子树,左子树选的要大于右子树 因此,将他按根-右-左遍历之后,求一遍最长上升子序列就是答案 #include<bits/stdc++.h> using namespace std; typedef long lon 阅读全文
posted @ 2021-04-02 21:55 朝暮不思 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 这道题可以使用启发式合并和延迟的策略来做 首先我们发现第一个操作就是将两个集合合并,要在合理的复杂度之内做到此事,启发式合并是个好办法 其次,因为我们需要查询的是最大值,因此用堆来维护也比较方便,但是现在有个问题,因为一些权值会被改变 而堆不能指定元素删除,因此如果要维护这些值,暴力的做法是把这个值 阅读全文
posted @ 2021-04-02 10:11 朝暮不思 阅读(60) 评论(0) 推荐(0) 编辑