启发式合并简直玄学
stone41123
一名苦逼的OIer,欢迎交朋友。。。
展开
-
[bzoj3123][洛谷P3302] [SDOI2013]森林(树上主席树+倍增lca+启发式合并)
传送门(luogu) 传送门(bzoj) 此题有两种操作: 1.查询树上两点间权值第k小 2.连接两棵树 限制条件:强制在线 看到第k小大家想到的肯定是主席树,可是连边又让大家想到了LCT 我们选择使用主席树。 为什么呢? 我们肯定是要舍弃两种操作中的一种,让它变慢,另一个就快了。 然而,第k小显然没有什么优化的余地,可是连接两棵树显然就是合并两棵树 合并!我们可以想到启发式合原创 2017-10-06 21:38:45 · 962 阅读 · 0 评论 -
[bzoj3545+3551][ONTAK2010]Peaks&&加强版(离线+线段树合并)||(kruskal重构树&&dfs序+主席树)
传送门 没权限号可以来这里交,老规矩,不准说。题面Description在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1。Input第一行三个数N,M,Q。 第二行N个数,第i个数为h原创 2017-10-27 18:10:33 · 446 阅读 · 0 评论 -
可持久化并查集
传送门1 传送门2 写法和主席树相似,具体我觉得自己YY就可以想出来的 就是用可持久化线段树来修改就好了,还有加上路径压缩和启发式合并 然后也不多说,上代码:(1A,强制在线版)#include<cstdio> #include<cstring> #include<iostream> #include<cmath> #include<algorithm> #include<cstdlib>原创 2017-12-21 15:56:27 · 206 阅读 · 0 评论