摘要: 引用一句百经: 在计算机科学中,平衡树能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成。平衡树,概括来说是一个一般化的二叉查找树(binary search tree),可以拥有多于2个子节点。与自平衡二叉查找树不同,B树为系统大块数据的读写操作做了优 阅读全文
posted @ 2024-02-20 19:35 RVm1eL_o6II 阅读(11) 评论(0) 推荐(1) 编辑
摘要: 状压 dp 就是把状态压缩为一个数方便储存和处理,特点是 \(\Theta(2^{num})\) 的时间复杂度和大量的位运算操作。极小的特定数据上限使得面对相关题目时很容易想到使用此方法,不过具体如何处理还要思考。 在此声明本文的常用新定义: \(S,S'...\):我称作状压状态,表现为一个正整数 阅读全文
posted @ 2024-02-20 19:34 RVm1eL_o6II 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 不好吃的线段树半家桶。 权值线段树 本质是叶子节点下标意义的变化。 一般情况下,线段树的每条线段负责维护区间 $a_l\sim a_r$ 的信息。存在两个叶子节点 $tree_l,tree_r$,有 $tree_l.l=tree_l.r=l,tree_r.l=tree_r.r=r$。权值线段树表示为 阅读全文
posted @ 2024-02-20 19:33 RVm1eL_o6II 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 机房新来了一堆小孩,吵得要死,想把他们剁了。 板题 树剖核心:将树拆分为多个不相交的链,使用数据结构(线段树等)维护修改查询操作。 概念: 重儿子:子树根节点的儿子中,以这些儿子为根的子树节点数最多的那个儿子。 轻儿子:子树根节点的儿子中,除了重儿子以外的儿子。 重边:连接节点与其重儿子的边。 轻边 阅读全文
posted @ 2024-02-20 19:33 RVm1eL_o6II 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 这个真的好容易啊 yxc小课 个人总结出斜率优化一般步骤: 写出 $\Theta(n^2 )$的 1d/1d 转移方程:即状态与转移都是一维的方程 将dp式化为 $Y=K*X+B$ 的一次函数形式,尽可能保证斜率 $K$ ,自变量 $X$ 的单调性,将本轮答案 $dp[i]$ 置于由常数和只与 $i 阅读全文
posted @ 2024-02-20 19:32 RVm1eL_o6II 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 我癌症晚期级别的dp力还敢写起小结来了,令人忍俊不禁。 烽火传递 显然这是一道dp。 显然有方程 $$ dp[i]={ dp[i-k+1 \sim i-1]}_{min}+w[i] $$ k是区间长。 答案为 ${dp[n-k+1 \sim n}_{min}$ 。 传统方法对 ${ dp[i-k+1 阅读全文
posted @ 2024-02-20 19:32 RVm1eL_o6II 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 这个简单且好写 裸的带题面得hash懒得找,找了个板子 给定一个长n的字符串txt和一个长m的字符串str,问txt里能不能找到str; 考虑暴力,O(nm)逐个比对,如果要比对总共k个字符串就是O(nmk),会炸 考虑优化。 #include<bits/stdc++.h> #define MAXN 阅读全文
posted @ 2024-02-20 19:31 RVm1eL_o6II 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 引子 割点的定义:若从无向图中删除节点x以及所有与x关联的边之后,图将被分为两个或两个以上的不相连的部分,那么称作点x为图的一个割点。 可以形象化地理解为图的枢纽,没有这些枢纽,图就会解体。 本题中我们需要找到并输出这些割点。 如果硬要把无向图看成有向图,再硬把有向图看成加入了横叉返祖边的树,那么树 阅读全文
posted @ 2024-02-20 19:30 RVm1eL_o6II 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 和lca一样一直忘写了... 引子 仔细看题可以得知,如果将传递关系建有向图,那么要输出图中最小环的大小。我的理解中最裸的tarjan用于判环 int tim,top,tot; int dfn[MAXN],low[MAXN],flag[MAXN],stac[MAXN],scc[MAXN],cnt[M 阅读全文
posted @ 2024-02-20 19:29 RVm1eL_o6II 阅读(3) 评论(0) 推荐(0) 编辑