首页 > 其他分享 >货车运输

货车运输

时间:2024-03-20 16:55:17浏览次数:17  
标签:连通 路径 边权 MST 货车运输 Kruscal 节点

借这一道题目来介绍一下最小瓶颈路和Kruscal重构树

首先本来这道题目我其实是没看出来是最大生成树的(因为不知道上面两个东西),然后我想的是二分,当然也可以做,但是复杂度多一个\(log\)

对上面两个东西的介绍见OI-wiki

下面是一些解释

最小瓶颈路的性质的第一句话说“根据最小生成树定义”,其实这个根据定义是出不来的,我们需要证明,而且这个证明不是简单的反证法就可以证明成功的,要用比较复杂的反证

我们考虑某一对点\((u,v)\),在MST上其存在且仅存在一条路径,设这条路径的边权的最小值为\(a\);假设在原图中\((u,v)\)存在另一条路径,设这条路径的边权的最小值为\(b\),且\(b>a\),则我们考虑这条路径中不在MST中的边

对这样的一条边,我们考虑Kruscal算法的过程,当遍历到这条边的时候,我们没有将这条边加入Kruscal,因为这条边的两个端点已经存在一条路径了,而且这条路径上的每一条边都是最终MST上的边。也就是说,我们可以将我们找到的任意一条其他的非MST路径上不是MST中的边全部换成若干条MST上的边,而且边权最小值会变大(或者至少不会变差),所以最后所有边都是MST上的边而且答案不会更劣;由于MST上\((u,v)\)只有一条路径,所以说这就是最优的答案

我们以上的证明过程也说明我们随便求一个MST就好了

然后这道题目只会用到最小瓶颈路

接下来介绍一下Kruscal重构树

定义中说“得到了一颗恰有\(n\)个叶子的二叉树”,实际上这些叶子全部都是原图中的点(也就是说新添加的点都不是叶子),这个用数学归纳法可以证明;“非叶子节点恰有两个儿子”也可以用数学归纳法证明

那么为什么

第一个等号见上文证明;第二个等号我们来考虑Kruscal的过程

对于\((u,v)\)在MST上的路径,我们找出其边权最大的边,这条边是这条路径中最后被添加到MST中的边

在添加这条边之前,\(u\)和\(v\)各自在两个连通块中,而且这两个连通块都是树,\(u\)或者\(v\)一直往上面走最终会走到各自连通块的根节点;添加这条边之后,我们连接了两个连通块(树)的根节点,并且将这两个根结点作为新连通块根节点的左右儿子,所以这个时候\(u\)和\(v\)各自往上面走,就会走到这个新连通块的根节点,所以这个根节点就是两者的LCA,且这个LCA的点权刚好是我们添加的最后一条边的边权,也就是路径的最大值

我们还可以发现,最终得到的Kruscal重构树,父亲的权值一定不会低于两个儿子的权值

标签:连通,路径,边权,MST,货车运输,Kruscal,节点
From: https://www.cnblogs.com/dingxingdi/p/18085613

相关文章

  • 货车运输(LCA+最大生成树)
    货车运输这题会有重边,又因为求的是尽可能大的边中的最小值,所以我们可以先用最大生成树维护,如何用最大生成树呢?可以用Kruskal和并查集,顺便处理重边,处理完重边后,可以用倍增LCA求两点之间的最大载重量处理重边时,必须把dis在x,y相同情况下大的排在前,以保证最优,用并查集find判断是否......
  • hszxoj 货车运输
    题目链接:hszxoj货车运输题目描述与思路简化题目:求\(x\)到\(y\)两点间路径的边权最小值的最大值与之前的最短路最大的不同是这道题是多源最短路,那么\(spfa\)就废了,\(Floyd\)定会\(TLE\)所以就需要用新的算法。用\(lca\)一定是在树上的,但明显这玩意他既有环又有森......
  • [NOIP 2013提高组]货车运输 题解
    [NOIP2013提高组]货车运输题解前置知识Kruskal重构树(内含讲解)+任意一种LCA题目翻译\(n\)座城市,\(m\)条道路,\(q\)次询问,每次求两个点\(x,y\)之间所有路径的最小值的最大值。题目分析其实学了Kruskal重构树差不多看到这个题目就知道怎么写了。其实就是Kruskal重构树的板子,......
  • P1967 [NOIP2013 提高组] 货车运输 (生成树,LCA)
    P1967[NOIP2013提高组]货车运输https://www.luogu.com.cn/problem/P1967首先有些边是没用的(比较小的边),比如两个点之间的两条(并行的)路,只有较大的会被走到,小的不会被走,因此可以直接去除小的边,即求最大生成树。接着做求任意两点经过的边的最小值就演变成求树上任意两点的最小树......
  • P1967 [NOIP2013 提高组] 货车运输
    P1967[NOIP2013提高组]货车运输因为可能成环,这样可能导致到达点的最小权值不一,所以用最小生成树的方法重新建图然后我是利用倍增的思想建立从i点开始,到上面点的距离ff和最小权值ww因为最小权值不好直接建立,所以不如最后统一建立最后就是寻找最近公共祖先的模板了一组hack......
  • 「NOIP2013」货车运输 题解
    「NOIP2013」货车运输前言这道题算是一个稍有思维难度的MST+LCA题目了。稍微卡了一会(0-88-88-88-100(打表)-100(打表)-100(正解)),开始是打了表过了,后面在DCZ的帮助下正解通过(下面注释提到的一个坑)。题目大意给出一张无向图\(G\),有\(n\)个点和\(m\)个边\((x,y)=z\),找到一......
  • NC16527 [NOIP2013]货车运输
    题目链接题目题目描述A国有n座城市,编号从1到n,城市之间有m条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有q辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。输入描述第一行有两个用一个空格隔开的整数n,m,表示A国......
  • 【题解】Luogu[P1967] NOIP2013 提高组 货车运输
    Link→很容易想到一个暴力做法,就是跑一遍Floyd,\(F_{i,j}\)表示\(i\)到\(j\)最大载重量,转移\(F_{i,j}=\max\{F_{i,j},\min\{F_{i,k},F_{k,j}\}\}\)。显然时间复杂度\(O(n^3)\)是过不了的。我们发现,因为是求两点路径中使得最小值最大,实际上有一些较小的路径是不会走......
  • 洛谷 P1967 货车运输
    P1967NOIP2013提高组]货车运输-洛谷|计算机科学教育新生态(luogu.com.cn)这个题目算是lca的稍微拓展吧。主要思考方向应该是很明显的。就是考虑一条路径上权值最......
  • m基于ACO蚁群优化的货车运输路线规划matlab仿真,考虑车辆载重,单位运输成本等因素
    1.算法描述蚁群算法是通过对自然界中真实蚂蚁的集体行为的观察,模拟而得到一种仿生优化算法,它具有很好的并行性,分布性.根据蚂蚁群体不同的集体行为特征,蚁群算法可分为受......