摘要: 题目描述 题目我也不知道启发式合并到底是什么东西 好吧,启发式合并就是把小的集合往大的集合合并,学并查集的时候不是有把小树根的父亲设为大树根的操作吗,这大概就是启发式合并的一个典例对于这道题,我的做法是把小SBT的所有结点从小到大全部加入到大SBT中(本来打了个Tre... 阅读全文
posted @ 2017-12-17 12:17 zerolt 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目需要的最短时间,明显二分 判断答案是否可行只要把超过答案的路径都记下来,找到一条所有超过的答案路径都经过的边,尝试删掉它,如果最长的路减去它小于答案,那么此答案就是可行的解 至于统计所有路径都经过的边,差分统计一下就好经过running的折磨,感觉tra... 阅读全文
posted @ 2017-12-16 21:51 zerolt 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目这题的差分和一般的树上差分写法差好远,参考了dalao的题解还磨了好久才写出来主要要注意的有以下几点: 1.起点s和终点t千万不要弄错(被它卡了半天的我QAQ) 2.记深度为d的起点的总数为cnt[d]:对于一条向上走的路,在起点处cnt[d]++,搜到... 阅读全文
posted @ 2017-12-15 21:09 zerolt 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目差不多是裸的LCA吧 只要处理好两条相交路径之间的关系就好了 如果两条路径相交,那么一条路径的LCA一定在另一条路径上 那么需要满足dep[lca1] >= dep[lca2]lca(lca1,s) == lca1 || lca(lca1,t) == l... 阅读全文
posted @ 2017-12-11 18:59 zerolt 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目本来想写一道Tarjan的,结果发现这题倍增比较好写 这题主要要搞懂树上差分这东西(NOIP前这东西卡了我好久) 大概要注意的就是对于除了出发点以外的所有点都是重复算了的,所以最后要有-1操作代码#include#include#include#incl... 阅读全文
posted @ 2017-12-11 18:08 zerolt 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目对于任务A,即求缩点后入度为0的点的个数 对于任务B,要使整个图连通,则入度0的点需要拓展一条入边,出度0的点需要拓展一条出边,那么需要拓展的最少边数即为max(入度0点数,出度0点数);特别的,当本来整个图连通时,不需要拓展代码#include#inc... 阅读全文
posted @ 2017-12-08 21:52 zerolt 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目 (指针版主席树) 阅读全文
posted @ 2017-12-05 13:54 zerolt 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目考试有想过每行建一棵树,但是发现空间会爆,就去打模拟了。。。 然而,正解就是每行建一棵树(最后一列单独建一棵),只不过是把插入操作改成删除操作就好了。 因为每次离队影响到的只会是人所在的行和列(如果是最后一列的离队只会影响行)。 对于后面插进来的元素用v... 阅读全文
posted @ 2017-12-01 19:51 zerolt 阅读(272) 评论(0) 推荐(0) 编辑
摘要: [[Luogu3391]【模板】文艺平衡树(Splay)] 非指针版 指针版(以前不压行的代码看着好长好啰嗦啊) 阅读全文
posted @ 2017-11-27 20:11 zerolt 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 const int N=100010,inf=10000010; 8 int n; 9 10 struct node 11 { 12 node* ch[2]; 13 int r,s,v; 14 ... 阅读全文
posted @ 2017-11-24 18:23 zerolt 阅读(123) 评论(0) 推荐(0) 编辑