摘要: 用主席树记录每个节点到根节点的信息,用树上差分的思想查询。 合并时把节点数小的合并到节点数大的上,也就是启发式合并, 合并时重建小树上的主席树。 阅读全文
posted @ 2018-03-13 10:46 Cupcake 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 using namespace std; 3 const int N=100010; 4 int n,m,v[N],color[N],root[N],lc[N],rc[N],dis[N]; 5 bool vis[N]; 6 int find(int k){return color[k]==k?k:color[k]=find(color[k]);} 7 ... 阅读全文
posted @ 2018-03-13 08:53 Cupcake 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 树状数组套线段树 阅读全文
posted @ 2018-03-13 07:48 Cupcake 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 主席树 空间要开够!!! 空间要开够!!! 空间要开够!!! 阅读全文
posted @ 2018-03-12 22:44 Cupcake 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 线段树套splay: 这是个永远不想打第二遍的模板 阅读全文
posted @ 2018-03-12 14:20 Cupcake 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 树链剖分,每种颜色开一个线段树维护,动态开点。 阅读全文
posted @ 2018-03-12 09:49 Cupcake 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 分治+最短路 写spfa会T。。 阅读全文
posted @ 2018-03-12 08:28 Cupcake 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 写出dp方程,可以发现转移要满足一个三维偏序,那么可以处理三维偏序的方法优化。 CDQ分治: cdq分治和树状数组是好伙伴~ 注意分治的顺序,要保证先求解出所有前驱状态。 树套树: 树状数组套线段树: 注意线段树数组开足够大。 阅读全文
posted @ 2018-03-11 23:24 Cupcake 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 离散化,二分答案,扫描y轴,用树状数组统计个数即可。 阅读全文
posted @ 2018-03-11 20:24 Cupcake 阅读(151) 评论(0) 推荐(0) 编辑
摘要: Splay: 阅读全文
posted @ 2018-03-11 18:00 Cupcake 阅读(96) 评论(0) 推荐(0) 编辑