摘要: 题目链接 思路 可以先考虑一棵树 如图,如果是一棵树我们肯定会想这样子做,但是现在根没有入度。所以现在需要再加入一条边使他变成基环树。 假如现在加入一条边$3 2$,那就会出现一个3 1 2 3的环。然后以这个环上的点为根,就可以找到很多棵满足条件的树 可以发现,这样就解决了根没有入度的问题。 结论 阅读全文
posted @ 2018-12-02 20:42 wxyww 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目链接 思路 因为这些数字是从小到大加进去的,所以以当前数字结尾的最长上升子序列可以从前面位置的任何一个数字转移过来。所以只要能知道每个数字最终位于哪个位置就行了。 没想到出了treap还有什么办法求出来这个序列。看了眼题解发现用vector的insert直接模拟就能过。~~(纳尼?)~~这个函数 阅读全文
posted @ 2018-12-02 18:49 wxyww 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目链接 思路 首先可以证明当这个高度是中位数的时候耗费时间是最少了。所以可以$n^2log(n)$用一个treap预处理出每个区间的中位数。 然后就是知道了中位数怎么计算答案的问题。 然后发现暴力n m的扫能过~~而且跑的还不慢~~ 但是~~作为一个正直善良的OIER~~我还是用$n^2log(n 阅读全文
posted @ 2018-12-02 14:22 wxyww 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题目链接 思路 这个题其实就是对于treap中的删除操作进行一些修改。自己yy了一种做法。就是在删除的时候,如果要删除的数比这棵子树的根大,那么就把根变成根的右孩子,这样就相当于删除了整棵左子树和根节点。然后重新维护一下siz,并且维护一下平衡性就行了。 竟然把rotate函数写错了。调了30min 阅读全文
posted @ 2018-12-02 10:12 wxyww 阅读(198) 评论(0) 推荐(0) 编辑