摘要: 最小生成树是有边权的无向图中的一个常见问题。 在无向图 G(V,E) 中,把连通而且不含有环路的一个子图称为一棵生成树,它包含全部 n 个点和 n-1 条边。边权之和最小的树称为最小生成树(Minimal Spanning Tree, MST)。 MST 的计算用到了一个基本性质:一个图的 MST 阅读全文
posted @ 2024-04-05 20:53 RonChen 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 现实生活中我们经常要做一连串事情,这些事情之间有顺序关系或依赖关系,做一件事情之前必须先做另一件事,如安排客人的座位、穿衣服的先后、课程学习的先后等。这些事情可以抽象为图论中的拓扑排序(Topological Sorting)问题。 给定一张有向无环图(在有向图中,从一个节点出发,最终回到它自身的路 阅读全文
posted @ 2024-04-05 14:58 RonChen 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 并查集是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。 例题:P1551 亲戚 题目描述: 如果 xy 是亲戚,yz 是亲戚,那么 xz 也是亲戚。如果 xy 是亲戚,那么 x 的亲戚都 阅读全文
posted @ 2024-03-16 11:20 RonChen 阅读(122) 评论(0) 推荐(0) 编辑
摘要: A. Brick Wall 因为水平砖块的长度至少为 2,所以一行中水平砖块最多放 m2 块,因此答案不超过 nm2。如果 m 是奇数,用长度为 \(\l 阅读全文
posted @ 2024-02-17 21:15 RonChen 阅读(30) 评论(0) 推荐(0) 编辑
摘要: A. Doremy's Paint 3 对于式子 b1+b2=b2+b3==bn1+bn=k,从中挑出 bi+bi+1=bi+1+bi+2,得到 bi=bi+2,这就意味着所有奇数位置 阅读全文
posted @ 2024-02-16 08:37 RonChen 阅读(51) 评论(0) 推荐(1) 编辑
摘要: 单调队列在 DP 中的基本应用,是对这样一类 DP 状态转移方程进行优化:dp[i]=min{dp[j]+a[i]+b[j]},L(i)jR(i)。方程中的 min 也可以是 max,方程的特点是其中关于 i 的项 \ 阅读全文
posted @ 2024-02-06 17:05 RonChen 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 双端队列 双端队列是一种具有队列和栈性质的数据结构,它能在两端进行插入和删除,而且也只能在两端插入和删除。 STL 中的双端队列可以用 deque,头文件为 <deque>,它的用法如下: dq[i] 返回队列中下标为 i 的元素 dq.front() 返回队头 dq.back() 返回队尾 dq. 阅读全文
posted @ 2024-02-06 09:37 RonChen 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 堆是一种树形结构,树的根是堆顶,堆顶始终保持为所有元素的最优值。有大根堆和小根堆,大根堆的根节点是最大值,小根堆的根节点是最小值。堆一般用二叉树实现,称为二叉堆。 堆的存储方式 堆的操作 empty 返回堆是否为空 top 直接返回根节点的值,时间复杂度 O(1) push 将新元素添加在数 阅读全文
posted @ 2024-02-03 19:58 RonChen 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 给定一张图,边上有边权(无权图可以用 BFS 求最短路),定义一条路径的长度为这条路径上经过的边的边权之和,两点间的最短路即为经过的边的边权之和最小的路径。 多源(全源):要对每一个点作为起点的情况,都做最短路,要求出任意两个点之间的最短路。 单源:固定起点,只求这个起点到其他点的最短路。 最短路是 阅读全文
posted @ 2023-12-23 07:14 RonChen 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 进制 12 个物品被称为 1 打,12 打被称为 1 罗,12 罗被称为 1 格。请问: 15 个是几打几个? 6775 个是几格几罗几打? 2 打 3 个是多少个? 1 格 9 罗 8 打 10 个是多少个? 以上的“几”均是不小于 0 且小于 12 的整数 分析 根据 15÷12=1···3,1 阅读全文
posted @ 2023-12-02 11:50 RonChen 阅读(369) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示