- 博客(17)
- 收藏
- 关注
原创 B003 找循环节 建图
从起点出发在经过一条链后才可能进入到环中,所以这个图结构也可以称为。数组,建完后寻找循环节。这里重点讲解如何寻找循环节。要求的步数比尾巴还小,没有进入环的部分,直接在。关键是找到环的两个信息:尾巴长度和环大小。接下来按照上面的流程就可以了。这道题目更简单,因为题目直接给了。进行取模,模数就是环的大小。就是总长度减去尾巴大小了。先加上尾巴的大小,然后对。
2026-03-20 17:35:41
373
原创 D007 并查集基础题集(上七题)
推荐阅读地址: D007 并查集基础题集(上七题)维护集合大小、集合数量:成环判断、获取所有集合的代表:抽象图论建模,将删边变为增边:区间上的连通块合并:P6121 [USACO16OPEN] Closing the Farm G - 洛谷 删点判断连通性,反过来加边判断连通性200. 岛屿数量 - 力扣 连通块统计,标准解法是洪水填充,但是使用并查集很有教育意义。初始化 数组,每次有效合并时更新 数组和当前最大值。代码链接:Link因为涉及到的元素为负数,所以不能使用数组储存了。传人数组,使用字典
2026-03-09 22:33:19
416
原创 D006 【模板】并查集
并查集是非常灵活和高效的数据结构,常见应用是维护无向图的连通分量个数、大小,最小生成树的 Kruskal 算法和最近公共祖先等。路径压缩目的是把树的高度压低,使得长链可以变成扁平的放射状,从而大大降低时间复杂度。并查集维护了若干个不相交的集合,每个集合通过一棵树来组织,根节点为该集合的代表。往上跳,跳到根节点,然后再返回的过程中改变途径节点的父节点,统一改成根。一个简单的并查集示例,可以先看图理解,再理解代码结构。函数查找到元素所在集合的根,并且在查找过程中进行。函数找到对应的根,再链接即可。
2026-03-04 21:01:14
428
原创 S002 字符串构造 最长相等真前后缀 字符串重叠 CF1029A
即可,因为前面的后缀可以当当前的前缀使用。第一眼想到的是周期。但是有的情况有重叠不能直接将。部分重叠了,可以重复利用,我们只需要在后面接上。这个重叠的话与前后缀有关。这就不是最小了,那么如何求最小呢?因为要最小,所以这个问题就转化为求。就是最长的 Border。后只需要在原串上后面加上。,也可以使用前缀函数求出。构造最小的一个字符串。因为数据很小可以直接。
2026-03-04 09:09:13
185
原创 G008 【模板】树的重心 带权重心 DFS P1670 P1395 P2986 洛谷
树的重心有如下三种定义,求出来的点是一样的。最常用的求重心的方法为第一个和第二个。树的重心模版,题面意思即是定义二。每颗子树的节点数不超过总节点数的一半。这是树的重心的一个很重要的性质。在树上,如果存在一点使得。这里使用方法二求解问题二。最小的节点,就是树的。最大子树的节点数最少。
2026-03-01 22:14:44
765
原创 G006 拓扑排序性质 字典建图 火星词典问题 P6491 [COCI 2010/2011 #6] ABECEDA - 洛谷
如果是非数字和非连续数字作为节点的话,选择字典进行存图是最好的选择。数据比较弱,因为内存较小Python语言的话使用Python3提交。如果两串是前缀关系,那么根据字典序定义,前面长后面短的一定不合法。先记录出现过的字符,再根据这些字符进行建图。的优先级,但这类题目一般优先输出无解的情况。相邻单词对比较,比较遇到的第一个不同字母。最后正常判唯一性和环即可。题目虽然没有说明无解。
2026-02-28 20:39:32
244
原创 D005 求子树大小的四种方法 树形结构 递归 栈模拟递归 CSES 1674
Python推荐使用 Pypy3 编译器和一次性读入字符串的方式和方法一或方法四,不然会被卡掉最后一个点最基础的树论题,考察对递归的应用和对树形结构的理解。
2026-02-28 20:34:51
504
原创 D004 二叉堆 序列合并 P1631 洛谷
数据较弱: 给两个长度为N的单调不降序列AB,在AB中各取一个数可以得到N2个和,求这N2个和的最小的N个。序列一:A1A2A3⋯AN序列二:B1B2B3⋯BN。
2026-02-27 12:39:13
303
原创 B002 排序 双指针 哈希表 两数之和到K数之和 1640~1642 CSES
推荐阅读地址为;这类问题可以抽象成K数之和,本质是递归的转化为两数之和,时间复杂度为NK−1。一般可以或解决。:给定一个n个整数的数组,找出k个不同位置(1-based)的元素,使其的和等于x。若无解输出IMPOSSIBLE。与力扣上的题目的有差异。
2026-02-27 00:37:47
675
原创 D002 二维偏序 逆序对 P1908 逆序对
这个维护查找可以类比为使用哈希表进行两数之和的操作,右边枚举左边查找。先进行离散化,将值域映射到 1~数组不重复元素个数。下需要进行离散化了,因为开不了这么大的数组。逆序对其实就是二维偏序的一种,对数组。树状数组求逆序对维护的是。然后从左到右遍历原素组。
2026-02-26 15:58:59
517
原创 【因子贡献】求子数组和与子集和总和
看题目意思是不可以暴搜的,时间复杂太高了,所以我们这里学习一种数学方法。这个可以脑力拿部分分,因为这只是一个二层循环而已,不像上面那题需要暴搜。由于集合中的元素都是不重复的,且每个元素都有选与不选两种状态,则一共有。这里我们像刚刚那题一样考虑因子的贡献,为了方便计算,使用。,则它可以为总和贡献。
2025-09-10 22:54:49
798
原创 【bfs】最小操作数问题
与例1不同的地方就是其没有必须再界内的条件。所以我们一开始数组尽量开到最大即可。这里题目要求不能跳出界,这个条件很重要,因为有的题目没有这个要求。这类题目一般都是给出若干个操作,文从。层上或下的层数,其它则与例1例2一样。
2025-09-04 17:12:35
1291
原创 为Fluid主题配置utterances评论系统
utterances是一个基于github issue的评论系统,它利用github的issue来存储评论。当访客在博客上发表评论时,会在对应的仓库中创建一个issue,issue的内容就是评论的内容所以要有一个公开的仓库来存储评论。构建这个评论系统只需要一个github账号就可以了,还是非常方便的。
2025-02-24 15:49:10
464
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅