/** 鼠标样式 **/

Shu-How Zの小窝

Loading...
摘要: 题解: 更新: k=1的时候要乘n 代码: #include<bits/stdc++.h> #define int long long using namespace std; const int N=5e3+5; typedef long long ll; typedef pair<int,int 阅读全文
posted @ 2024-09-26 09:30 Violet_fan 阅读(13) 评论(0) 推荐(0)
摘要: 差分约束系统 参考博客: oiwiki 博客园 差分约束系统 定义 差分约束系统是一种特殊的 \(n\) 元一次不等式组,它包含 \(n\) 个变量 \(x_1, x_2, \dots, x_n\) 以及 \(m\) 个约束条件,每个约束条件是由两个其中的变量做差构成的,形如 \(x_i - x_j 阅读全文
posted @ 2024-09-26 09:29 Violet_fan 阅读(29) 评论(0) 推荐(0)
摘要: Kruskal 重构树 定义 在跑 Kruskal 的过程中我们会从小到大加入若干条边。现在我们仍然按照这个顺序。 首先新建 \(n\) 个集合,每个集合恰有一个节点,点权为 \(0\)。 每一次加边会合并两个集合,我们可以新建一个点,点权为加入边的边权,同时将两个集合的根节点分别设为新建点的左儿子 阅读全文
posted @ 2024-09-02 20:01 Violet_fan 阅读(7) 评论(0) 推荐(0)
摘要: 点分治 P3806 【模板】点分治 1 P3806 【模板】点分治 1 我们先随意选择一个节点作为根节点 \(\mathit{rt}\),所有完全位于其子树中的路径可以分为两种: 一种是经过当前根节点的路径 一种是不经过当前根节点的路径。 对于经过当前根节点的路径,又可以分为两种: 一种是以根节点为 阅读全文
posted @ 2024-08-31 19:38 Violet_fan 阅读(15) 评论(0) 推荐(0)
摘要: ACM算法模版 数据结构 树状数组 #include<bits/stdc++.h> #define int long long using namespace std; const int N=5e5+100,mod=998244353; typedef long long ll; typedef 阅读全文
posted @ 2024-08-31 05:39 Violet_fan 阅读(25) 评论(0) 推荐(0)
摘要: 主席树 主席树全称是可持久化权值线段树,即对权值开线段树,参见 知乎讨论。 引入 先引入一道题目:给定 \(n\) 个整数构成的序列 \(a\),将对于指定的闭区间 \([l, r]\) 查询其区间内的第 \(k\) 小值。 你该如何解决? 一种可行的方案是:使用主席树。 主席树的主要思想就是:保存 阅读全文
posted @ 2024-08-29 16:04 Violet_fan 阅读(12) 评论(0) 推荐(0)
摘要: 引入 扫描线一般运用在图形上面,它和它的字面意思十分相似,就是一条线在整个图上扫来扫去,它一般被用来解决图形面积,周长,以及二维数点等问题。 Atlantis 问题 题意 在二维坐标系上,给出多个矩形的左下以及右上坐标,求出所有矩形构成的图形的面积。 解法 根据图片可知总面积可以直接暴力即可求出面积 阅读全文
posted @ 2024-08-27 19:32 Violet_fan 阅读(209) 评论(0) 推荐(1)
摘要: 树链剖分的思想及能解决的问题 树链剖分用于将树分割成若干条链的形式,以维护树上路径的信息。 具体来说,将整棵树剖分为若干条链,使它组合成线性结构,然后用其他的数据结构维护信息。 树链剖分(树剖/链剖)有多种形式,如 重链剖分,长链剖分 和用于 Link/cut Tree 的剖分(有时被称作「实链剖分 阅读全文
posted @ 2024-08-26 20:21 Violet_fan 阅读(11) 评论(0) 推荐(0)
摘要: 线段树模版:从入门到入坟 线段树——单点修改 1.求区间最值 #include<bits/stdc++.h> #define int long long using namespace std; const int N=200010; typedef long long ll; struct nod 阅读全文
posted @ 2024-08-26 19:46 Violet_fan 阅读(14) 评论(0) 推荐(0)
摘要: 参考文章: 树上启发式合并 [dsu on tree]树上启发式合并总结 树上启发式合并の详解 启发式合并 启发式算法是什么呢? 启发式算法是基于人类的经验和直观感觉,对一些算法的优化。 举个例子,最常见的就是并查集的启发式合并了,代码是这样的: void merge(int x, int y) { 阅读全文
posted @ 2024-08-25 16:06 Violet_fan 阅读(12) 评论(0) 推荐(0)