摘要: 对于图上求期望 / 概率,是 DAG 的可以拓扑排序 dp,非 DAG 的可以考虑高斯消元。 对于二进制问题可以考虑将每一位拆开计算。 对于贡献存在于整棵树上的 dp,考虑分两次分别计算子树内和子树外的贡献。 对于边权为 \(1\) 的图,常采用 Bfs 求解各种问题。 多次多个元素的贡献可以拆成多 阅读全文
posted @ 2024-02-27 19:10 dingzibo_qwq 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 慎用 memset 初始化。 数组空间要开够,用多个宏定义数组空间时,要分清楚是哪个常量。 图不连通时求所有强连通分量 tarjan 的时候应该写 for(int i = 1; i <= n; i++){if(!dfn[i]) tarjan(i);},不是tarjan(1)。 多组数据数组要清空。 阅读全文
posted @ 2024-02-27 19:10 dingzibo_qwq 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 2024.5 做题记录 [Violet] 天使玩偶 显然发现我们需要在时间轴上进行 cdq 分治,然后统计答案。 问题在于这个绝对值不好维护,需要进行转化。如果我们钦定这个点最近的点在它的左下方,那么绝对值就可以化为 \(dis(A,B)=(A_x-B_x)+(A_y-B_y)=(A_x+A_y)- 阅读全文
posted @ 2024-05-09 22:04 dingzibo_qwq 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 1 网络流相关概念 网络流的概念分为网络和流。 网络是指一种特殊的有向图 \(G=(V,E)\),每条边上有容量 \(c(u,v)\) ,同时还有源汇点 \(s,t\)。 对于一个网络,一个流 \(f\) 需要满足以下性质: 每条边上的流量 \(f(u,v)\) 不能大于它的容量 \(c(u,v)\ 阅读全文
posted @ 2024-05-05 21:06 dingzibo_qwq 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 1 概念 在很多题目中,我们可以使用二分法来得出答案。但是如果说这一类题目有多次询问,并且多次询问分别二分会 TLE 时,我们就需要引入一个东西叫整体二分。 整体二分的主要思路就是将多个查询一起解决,因此它是一种离线算法。 整体二分的具体操作步骤如下: 首先记 \([l,r]\) 为答案的值域,\( 阅读全文
posted @ 2024-05-05 16:47 dingzibo_qwq 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 1 概念 cdq 分治,是一种分治思想而非具体算法。它是基于分治思想,将复杂的问题拆分求解。 与一般分治算法不同的是,一般分治所拆分的子问题互相独立、互不干扰、形式与原问题一致。而在 cdq 分治中,每次划分出的两个子问题,是利用前面的子问题解决后面的子问题。也就是说,对于序列 \([l,r]\), 阅读全文
posted @ 2024-05-04 16:42 dingzibo_qwq 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1 点分治概念 点分治是树分治的一种,主要用于处理树上路径问题。 注意这颗树不需要有根,即这是一颗无根树。 下面以例题分析点分治的基本思想。 2 点分治实现 2.1 思想 首先你需要会的前置知识:树的重心。 我们来看这样一道例题:【模板】点分治 : 给出一颗无根树,有边权,询问树上是否存在距离为 \ 阅读全文
posted @ 2024-04-21 10:05 dingzibo_qwq 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 1 引入 首先看这样一道题:[SDOI2011] 消耗战 有一棵树,边上有边权。每次询问给出 \(k\) 个点,找到一些边,使得删去这些边后从 \(1\) 号节点无法达到这 \(k\) 个点中任意一个,同时使边权最小。 显然这是一道树形 dp。如果说只给我们一次询问,可以很简单的 \(O(n)\) 阅读全文
posted @ 2024-04-14 11:44 dingzibo_qwq 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 1 概念 扫描线一般运用在图形上面,其含义就是拿一条线在图形上扫,然后维护信息得到答案。 通常情况下,扫描线被用于求面积、周长问题。 2 矩形面积并 2.1 思路 先给出例题:【模板】扫描线 考虑我们所学的求不规则图形面积的方式,无外乎割补。然而补似乎太难实现,因此考虑割。 如下图: 那么我们考虑怎 阅读全文
posted @ 2024-04-11 22:01 dingzibo_qwq 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1 定义 笛卡尔树是一种二叉树,每一个节点由二元组 \((k,w)\) 组成。要求 \(k\) 满足二叉搜索树的性质,\(w\) 满足堆的性质。 当 \(k,w\) 都确定,且 \(k,w\) 互不相同时,笛卡尔树的结构是唯一的,如图: 看到这个定义,会发现与 Treap 十分相似。 实际上,Tre 阅读全文
posted @ 2024-04-06 11:49 dingzibo_qwq 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 2024.4 做题记录 [NOIP2018 提高组] 旅行 看到题目中要求 \(m=n\) 或 \(m=n-1\),此时就应当分类讨论。 ① 当 \(m=n-1\) 时: 此时数据为一颗树。 我们贪心的想:起始点为 \(1\) 的时候显然最优。对于每一个节点,在它子树内按照从小到大的顺序遍历显然最优 阅读全文
posted @ 2024-04-03 21:32 dingzibo_qwq 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 1 基环树概念 1.1 定义 首先,基环树并不是一颗严格的树。它是一张由 \(n\) 个节点,\(n\) 条边组成的图。 1.2 无向联通图上的基环树 首先,一棵树有 \(n\) 个节点,\(n-1\) 条边。那么基环树就可以看做是在一棵树上加了一条边,这样多出了一个环(因此基环树也被称作环套树)。 阅读全文
posted @ 2024-04-02 20:48 dingzibo_qwq 阅读(14) 评论(0) 推荐(0) 编辑