
启发式合并
Mys_C_K
人生有许多道:曾经踏足的是道,即将踏往的也是道,那什么才是道呢?唯有脚下走的才是道。一切精神或者物质都归于虚无,然后从混沌中衍生出三万道。在悲喜间涉足一条无数前人经历过,且将有无数后人奔赴的道,无论是否已经或者将要到达彼岸,然后便不再回头或是左顾右盼,即使有些道繁盛至极,夜灯如昼,无数人一浪又一浪的涌去,造就了世人皆知的辉煌;即使有些道草木凋敝,荒草丛生,只等勇敢的开拓者斩开荆棘,创造一片天地;这些都无所关,无所在意,彼岸何如、来日何方甚至过往旧事都化作一缕云烟,飘渺碧霄,我自撷高山之月色,独随足落处往行。
展开
-
某个树上数据结构 - splay - 启发式合并
题意:给你一颗有边权、点有颜色的有根树,根是1,对每个点求,仅考虑其子树,哪种颜色的点两两距离之和最大,多解输出编号最小。 题解:省选前敲一波数据结构。splay用启发式合并即可。 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #includ...原创 2018-05-04 22:02:38 · 386 阅读 · 0 评论 -
往事 - SAM - 启发式合并
题目大意:给你个Trie,求两个从根出发的字符串(不一定要到达叶子),使得LCP+LCS(这个是最长公共后缀)最大。 题解:建出SAM后,考虑parent树中每次合并两颗子树,启发式的把小的插到大的里面,显然每次插入的时候只会取dfs序的前驱和后继做LCA来更新答案。两个log。 #include<iostream> #include<cstring> #incl...原创 2018-09-06 16:19:22 · 282 阅读 · 0 评论 -
方队 - 启发式合并 - 主席树
(其实是启发式分裂?大雾 题目大意:n名同学要进行一次方队展示。方队展示的全过程如下:初始时,所有同学站成一横行,从左到右第i名同学编号为i,身高为ai。然后,所有同学按照一定的顺序依次出队,第i名出队的同学编号为bi。每名同学出队后,原先该同学所在的这一行会进行“变队形”操作:原先在该同学左侧的同学位置不动,在右侧的同学整体移动到队伍最后方组成新的一行,并保持他们的相对位置不变,其效果是原先的这...原创 2018-09-18 20:08:47 · 211 阅读 · 0 评论 -
bzoj 4182 shopping - 树dp - 点分治
考虑一个O(n2m)O(n^2m)O(n2m)的暴力,枚举一个点当根,然后按照dfs序的最后一次访问为阶段做dp,那么每个点要么其子树完全不选(等价于之考虑了Lvis[x]-1),要么就直接在Rvis[x]-1上选x(把x得子树合并起来)。用点分治优化上述过程即可。实际上也可以用dsu on tree做,常数更小。 点分治: #include&lt;iostream&gt; #include&lt...原创 2018-09-20 16:59:28 · 280 阅读 · 0 评论 -
luogu P4755 Beautiful Pair - 启发式合并 - 主席树
题目大意: 给一个非负整数数列,问有多少子区间,端点权值乘积小于等于区间最大值。 (其实是启发式分裂? 和这个题做法一模一样,没了。 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define gc getchar() #define rep(i,a,b) for(int i=a;i<=b;i++) #define Rep(...原创 2018-10-29 12:32:33 · 247 阅读 · 0 评论 -
家访 - 最短路 - 启发式合并 - 可并堆
题目大意:给一张图,但是有条边不能通过,但是只有到达那条边的端点之后才能知道这条边不能通过。求最坏情况下的最短路。 题解: 显然先求一个最短路树(到T的),那么只可能删树上的边(否则没有意义)。 因此设ans[s]表示答案,不难发现ans[x]=max(min(ans[y]+w(x,y)),g[x])ans[x]=max(min(ans[y]+w(x,y)),g[x])ans[x]=max(min...原创 2019-04-01 19:33:44 · 290 阅读 · 0 评论 -
重复子串(string) - SAM - 启发式合并 - 线段树
题目大意:给一个字符串多次询问一个子串s的权值。一个字符串的权值定义为最长的出现了至少两次的子串的长度。n,m≤105n,m\le10^5n,m≤105。 题解:考虑把串反过来,建SAM。显然询问要先二分一波。 那就是求对应下标在某个区间内的点是否存在两个点其LCA的val大于等于二分的值。 考虑哪些点对有可能成为答案,显然如果有三个前缀下标a,b,c满足a<b<c(设ps(a)表示前...原创 2019-04-16 16:33:39 · 464 阅读 · 0 评论