![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
建图
文章平均质量分 82
鹭天
敦立坤我是你爹
展开
-
【题解 && Kruskal重构树 && LCA】 星际导航
如果x和y不连通,说明我们这个时候甚至找不到x和y的一条路径,也就无法求最大边的最小值。因为如果我们不要这条边,而选择后面的边,让x和y能够连通,后面的边显然都比他大。首先我们明白,两个点之间的路径,其实是一个生成子图,或者说生成子树。想要最大边最小,其实感性理解一下,就等价于让两个点连通的代价最小。因为这是让x和y连通加入的最后一条边,前面的加边都比他小。于是两个点之间的最大边权就变成了重构树上的LCA的点权。我们回想最小生成树的思路,这个时候有两个点x和y。也就是x到y路径上的最大边的最小值。原创 2024-07-21 16:58:08 · 1062 阅读 · 0 评论 -
[蓝桥杯 2022 省 A] 推导部分和
对于一个长度为N的整数数列A1A2⋯AN,小蓝想知道下标l到r的部分和il∑rAiAlAl1⋯Ar是多少?然而,小蓝并不知道数列中每个数的值是多少,他只知道它的M个部分和的值。其中第i个部分和是下标li到ri的部分和∑jliriAliAli1⋯Ari, 值是Si。原创 2023-11-05 23:07:00 · 984 阅读 · 3 评论 -
【题解 && 图论建模】 航空管制
题目传送门题目描述:Solution看到第一个限制,我们就能想到连边。但是,我们如果建正图,很显然对于多个关系会难以处理。因此,我们考虑建反图。如果一个序列是好的,那么必然满足逆拓扑序。我们用堆来维护当前的拓扑序。如果当前点的最晚限制是k[i]k[i]k[i],那么在当前这个点之前一定要有n−k[i]n-k[i]n−k[i]个点。用小根堆维护n−k[i]n-k[i]n−k[i],对于第一问我们不断做拓扑序即可。考虑第二问将问题转化,对于当前数xxx,它所在的位置下标最小,就是在反图原创 2020-08-24 21:12:56 · 741 阅读 · 1 评论