首页 > 其他分享 >归程

归程

时间:2024-07-28 15:10:00浏览次数:7  
标签:输出 点中 边权 某点 最大值 归程

题目就是让你从一个点出发,经过的边权>=p,输出能到达的点中与点1最近的点的距离。输出图中与某点边权最大值<=p的点我们可以用kruskal重构树(具体而言,kruskal重构树无法解决和之类的问题)。这是因为最小生成树本身就是按边权从小到大排序的,所以会有这个最大/最小值的性质。哈哈。然后重构树的正确性是因为(以最小生成树举例)对于图上的任意两点,其在生成树上的路径边权最大值一定大于等于其其他路径边权最大值。因为如果有一条更大的边,要么已经在生成树里了,要么因为构成了环,但其他边都比他大。还有一个性质是重构树上的点边权向上递减。所以我们直接在重构树上倍增跳,跳到不能再跳的时候在子树里找就可以了。

标签:输出,点中,边权,某点,最大值,归程
From: https://www.cnblogs.com/wuhupai/p/18328224

相关文章

  • 【题解】P4768 [NOI2018] 归程 / Kruskal 重构树
    补补以前懒得总结的零碎东西。kruskal重构树使用条件:求无向图中两点之间所有路径的最大边权的最小值构造:依kruskal得到最小生成树从小到大考虑生成树中的边\((u,v)\)对于\((u,v)\),新建一个结点,作为重构树中\(u,v\)的父结点该结点的点权为\((u,v)\)的......
  • P4768 [NOI2018] 归程
    链接:P4768[NOI2018]归程观察一下题目,如果没有车,求一个单源最短路就行了(但不要使用一种广为人知的最短路算法)现在考虑有车的情况,显然最优策略是坐车到离\(1\)号节点最近的车能去的点下车。于是我们还是可以预处理每个点到\(1\)号节点的最短路,每次从节点\(v\)开始广搜它能去的所......
  • [NOI2018] 归程 解题报告
    题面步行的最小距离很容易求,dij随便求一下每个点的最短路,然后找到与\(v\)能相互坐车到达的点,对这些点的最短路都有可能是答案,取个\(\min\)即可。所以本题最大的问题是怎么找到在水位线为\(p\)时,与\(v\)能相互坐车到达的点。可以想到只保留海拔大于\(p\)的边,因为只要考......
  • P4768 [NOI2018] 归程 题解
    这是一个悲伤的题目,自这道题后,\(\text{Noi}\)再无\(\text{SPFA}\)。首先讲一下重构树是啥。重构树是基于\(\text{kurskal生成树}\)算法的一棵树,对于每一次合并一条......
  • 【题解】P4768 [NOI2018] 归程(树上倍增,Kruskal 重构树,dijkstra)
    【题解】P4768[NOI2018]归程作为一道NOI的D1T1,放在现在或许难度不够(?),但可能在Kruskal重构树还未普及的当时,还是相对来说比较难的一道题吧。写篇题解记录一下。题......
  • [NOI2018] 归程 题解
    题目描述[NOI2018]归程思路题目说,所有海拔\(\leqp\)的边都会有积水,因此所有的边分为了两个集合\(S_车,S_步\),其中\(S_车\)所有的边的海拔都\(>p\),\(S_步\)反......
  • 非递归程序时间复杂度计算
    单层时间复杂度计算一、设执行次数为t次二、列出每次执行变量i的值,如:for(inti=0;i<n;++i){...}三、找到执行第t次i的值,即i=f(t)(公式一)四、列出......