线段树合并+离线+启发式合并 半年前这道题t成狗。。。 离线的做法比较好想,按照边的权值排序,询问的权值排序,然后枚举询问不断加边,加到上限后查找第k大值,这里平衡树,权值线段树都可以实现。 那么我们用权值线段树就行了, 并查集维护两点连通性,不连通的话就合并,并查集连接。 #include<bit ...
分类:
其他好文 时间:
2017-08-02 23:36:18
阅读次数:
207
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2212 【题目大意】 给出一棵二叉树,每个叶节点上有一个权值,现在可以任意交换左右儿子, 使得逆序对最少,求最少的逆序对数量 【题解】 我们发现对于每个非叶节点来说,其贡献值为左右两个儿子 ...
分类:
其他好文 时间:
2017-07-24 10:08:18
阅读次数:
146
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4756 【题目大意】 给出一棵树,对于每个节点,求其子树中比父节点大的点个数 【题解】 我们考虑每个权值建立一棵线段树,边dfs边将子节点合并为一颗线段树, 那么只要查询当前点的树上后缀和 ...
分类:
其他好文 时间:
2017-07-23 18:21:25
阅读次数:
503
题目链接 Treeland Tour 题目就是让你求树上LIS 先离散化,然后再线段树上操作。一些细节需要注意一下。 ...
分类:
其他好文 时间:
2017-07-21 23:18:50
阅读次数:
298
单调队列 : code by zhx 手写队列+手写 栈: stack: 队列: STL:中的priority_queue 并查集,启发式合并 把节点较少的合并到节点节点较多的上 是一种优化 杂七杂八的线段树 code by zhx ...
分类:
其他好文 时间:
2017-07-18 22:11:07
阅读次数:
154
题意: n个点,有加边操作,询问与某一点处于相同的联通块的点中权值第k大的点 思路: 对所有点建立一棵权值线段树,加边就配合并查集进行线段树合并 反思: 动态开点,权值线段树要用sum[g[x=find(x)]](还是不够熟练),g为根。 代码: ...
分类:
其他好文 时间:
2017-07-16 09:51:33
阅读次数:
128
题目链接 BZOJ2243 树链剖分+线段树合并 线段树合并的一些细节需要注意一下 ...
分类:
其他好文 时间:
2017-07-13 16:03:34
阅读次数:
157
这题之前写过线段树合并,今天复习Splay的时候想起这题,打算写一次Splay+启发式合并。 好爽!!! 写了长长的代码(其实也不长),只凭着下午的一点记忆(没背板子。。。),调了好久好久,过了样例,submit,1A! 哇真的舒服 调试输出懒得删了QwQ #include<iostream> #i ...
分类:
其他好文 时间:
2017-06-30 01:11:26
阅读次数:
300