05 2018 档案
摘要:非常好的一篇博客(LCT) 题解来源(LCT) 先抄了一遍板子【注意数据范围】
阅读全文
摘要:非常好的一篇博客(LCT) 时间效率相差不大 1.分块 2.LCT 思路概要:把该点连向跳到的点,并保证跳到的点深度比他小,则最后左儿子的siz+1即答案
阅读全文
摘要:对于区间翻转操作,将l-1(代码中建了[1,n+2]个点,故这里为l)先旋转到根,再将r+1(同上,这里为r+2)旋至其右儿子,则r+1的左儿子即我们要翻转的区间 tip:在find时已经更新了rev,所以可以splay 【感觉我的buildtr好恶心啊】
阅读全文
摘要:非常好的一篇博客 写下之前自己被困住的几个点吧: 1.access找的不是到真实的根的一条路径,而是到能找到的最上面的splay的根(makeroot同理) 2.findroot找的是x所在原树的树根(深度最小),并旋转至当前一棵splay的根 tips:具体的还是没特别懂,多做题吧
阅读全文
摘要:初始时将1的限制赋为无穷大,然后对每个节点贪心,从大往小取,知道能取得的元素的最大值小于0 比较唯一性时注意下
阅读全文
摘要:1.treap 一棵treap维护一下就可以了吧(压行导致代码格式不怎么美观) 2.splay 挺快的
阅读全文
摘要:1.treap 每个点建一棵treap,维护优先级,然后启发式合并两棵treap 2.splay
阅读全文
摘要:事实证明,数据存在负数? 用treap确实小题大做了 黄学长的hash自行了解
阅读全文
摘要:树形DP f[i][j]就表示以i为根的子树中染了多少个黑点。我们可以发现,假设枚举了一条边i(x,y,c),那么它对收益的贡献就是c*(x那边黑点的个数*y那边黑点的个数+x那边白点的个数*y那边白点的个数)。假设在做以x为根的子树,枚举到了它的儿子y,然后就枚举x子树中黑点的个数i和y子树中黑点
阅读全文
摘要:K-D TREE算法原理及实现 板子题,但这题很神奇的是加了一个优化以后直接从11292ms跑成了1548ms(即代码中替换掉注释部分的内容) 优化具体原理应该是先将maxans/minans尽量放大/减小 这题求的是每个点到其他点的最长路径和最短路径,符合kd-tree的应用范围,那么优化的暴力就
阅读全文
摘要:不建议用cdq,内存达到了159024kb,时间4468ms 这题cdq的想法是:对于两个点(x,y)和(u,v)组成的矩形,我们可以想象成矩形(1,1 u,v)中的所有点减去矩形(1,1 u,y-1)和矩形(1,1 x-1,v)的点,再加上(1,1 x-1,y-1)里的点 x是时间变量,天然有序。
阅读全文
摘要:中国剩余定理(孙子定理)模板 在《初等数论》上有详细的解析 这是关于模数两两互质的情况
阅读全文
摘要:这是极大极小值算法原理,不断递归 alpha_bata算法是对其的一个优化 当当前这轮选的是答案尽量大的值时(pro_max),到(pro_min)里搜索时,去的是尽量小的值,若当前能取到比在pro_max平行的前几轮里更小的,则pro_max里即可避免掉这种方案,取前几种方案pro_min同理
阅读全文
摘要:f[now][0]表示以当前点为根,且要取该点,满足条件的最小 f[now][1]表示以当前点为根,至少取它的一个儿子,满足条件的最小值 f[now][2]表示他的儿子均被覆盖,满足条件的最小值f[now][0]=val[now]+segma(min(f[son][0~2]));f[now][1]=
阅读全文
摘要:树形DP#include #include #include #include using namespace std; int indg[152],n,p,cnt,f[152][152],head[152],nex[302],to[302]; void inline read(int &x){ char ch=getchar();x=0; while(!isdigit(ch)...
阅读全文
摘要:树链剖分裸题 唯一一个要注意的地方就是数据范围吧。计算时不写(long long)是会爆掉的
阅读全文
摘要:学长的题解:显然,暴力求解的复杂度是无法承受的。考虑这样的一种暴力,我们把 z 到根上的点全部打标记,对于 l 到 r 之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)。所以,我们不妨把 z 到根的路径上的点全部 +1,对于 l 到 r
阅读全文
摘要:给白色边都加上一个值,做kruskal会使得选取的白边数量减少,二分它
阅读全文
摘要:割点的求解与tarjan缩点类似 哪些点可能成为割点?1.有>=两棵子树的根2.儿子能回到的dfn[ ]最小的点仍大于当前点 那么算法出来了dfn[ ]表示其dfs序,low[ ]表示该点能到的dfn[ ]的最小值 ps:为什么不用考虑儿子节点存在>=两个孙子的情况呢?因为在考虑父节点的时候,若其不
阅读全文
摘要:启发式合并,在合并时将siz较小的合并到siz较大的后面 题意: 有两个操作 1、将所有的x改成y 2、求序列的颜色段 如1 2 2 1 ans=2(m<=1000000) 首先,可以求出初始序列的ans,然后每次修改颜色相当于合并两个颜色,启发式合并。 启发式合并就是将sz小(s1)的暴力加入sz
阅读全文
摘要:注意要建反图,走逆向拓扑序 若正向无法保证在当前最有的情况下,是否全局最有,而反向则满足
阅读全文
摘要:思路是先对每个(k-1)长度的子字符串之间建边,然后拓扑,若有环则最终仍有indg[i]为 0的 这题用字符串哈希的话会超时 以下是30分做法 满分用map
阅读全文

浙公网安备 33010602011771号