首页 > 其他分享 >添加虚拟原点降低建图复杂度

添加虚拟原点降低建图复杂度

时间:2023-07-09 23:32:31浏览次数:36  
标签:原点 ## 复杂度 点集 建图 虚拟 https gh

## 需求

存在一个大小为$n$的点集$V_1$ 和 大小为$m$的点集$V_2$,$V_1$中的每个点都需要向$V_2$中的每个点连一条边


## $n * m$条边

![](https://cdn.jsdelivr.net/gh/G-ghy/cloudImages@master/20211007155650.png)

当$n$和$m$数值较大或者需要建图多次时,一定概率会超内存或者遍历时超时



## $n + m$条边

对于不同起点,相同终点,两条路径可以看为存在交点的,交点到终点的路径可以等效为一条,如果可以实现路径复用,既能够有效减少边数

因此一种解决方案为,在$V_1$ 与 $V_2$之间添加一个虚拟点,$V_1$中的节点首先向虚拟点连边,再由虚拟点向$V_2$中的各个点连边

![](https://cdn.jsdelivr.net/gh/G-ghy/cloudImages@master/20211007160800.png)


## 相关题目

[拓扑排序-车站分级](https://www.acwing.com/problem/content/458/)

标签:原点,##,复杂度,点集,建图,虚拟,https,gh
From: https://blog.51cto.com/u_14882565/6670191

相关文章

  • 爬天梯 + 放苹果 (记忆化搜索大大优化时间复杂度)
    记忆化搜索——即把搜过的地方记录下来,后面再搜的时候直接取就好了 题解:1#include<iostream>2usingnamespacestd;3#definelllonglong4constintN=100;5lla[N],n;6lldfs(lln)7{8if(n<=1)9return1;1011if(!a......
  • 如何使用React和Framer Motion构建图像轮播
    您可能在许多现代应用程序中遇到过轮播。这些多功能网页元素以各种名称(例如滑块或旋转器)而闻名,它们以视觉上吸引人的滑动或旋转方式展示内容。轮播可以帮助您节省空间、增强用户界面并提供出色的用户体验。轮播已成为UI设计的主要内容,通常用于显示图像、推荐等。创建引人入胜......
  • 最详细的解说—时间和空间复杂度
    转载自:https://www.jianshu.com/p/1ac6ad4069f8 算法的选择我们都知道同一个问题有不同的算法解决,这些算法在运行时间、运行占用内存、代码易读性等方面都不相同,而在这些算法中,我们只能选择一种解决方案,这时判断选择哪个算法的依据是什么呢?   在这里,我们引入了时......
  • JavaScript aglo 算法 时间复杂度
    https://www.bigocheatsheet.com/https://www.hello-algo.com/chapter_preface/about_the_book/ gpt的回答好的,下面给出这些算法的JavaScript例子,并给出它们的时间复杂度分析:O(1)-常数时间复杂度:javascriptCopyCodefunctionconstantTimeAlgorithm(n){return2+......
  • geotools怎么创建图像金字塔?
    图像金字塔(ImagePyramid):目的是为了快速的显示?类似于切片??创建图像金字塔:调用图像金字塔:参考1:https://www.osgeo.cn/geoserver-user-manual/tutorials/imagepyramid/imagepyramid.html参考2:https://blog.csdn.net/qgbihc/article/details/109320684......
  • 系统复杂度之【高性能】
    今天我们来谈一谈系统复杂度的根源之【高性能】对性能的不懈追求一直是人类科技持续发展的核心动力。例如计算机,从电子管计算机到晶体管计算机,再到集成电路计算机,运算性能从每秒几次提高到每秒几亿次。然而,随着性能的提升,相应的方法和系统复杂度也逐渐增加。现代计算机CPU集成了......
  • 系统复杂度之【高可用】
    接着,我们聊聊复杂度的第二个要求高可用。参考维基百科,先来看看高可用的定义。系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。这个定义的关键在于“无中断”,但恰好难点也在“无中断”上面,因为无论是单个硬件还是单个软件,都不可能做到无中断,......
  • 系统复杂度之【可扩展性】
    紧接着我们来聊聊可扩展性。可扩展性是指,软件系统具备面对未来需求变化而进行扩展的能力。系统可根据新的需求做出少量或者不需要修改,无需对整个系统进行重构或重建。由于软件系统变化多端,新的需求不断提出,因此可扩展性非常重要。为解决可扩展性带来的问题,面向对象思想的提出,设......
  • 时间复杂度O(1),O(logn) ,O(n),O(nlogn)...
    写在前面在学习数据结构和算法的时候,经常会碰到O(1),O(n)等等用来表示时间和空间复杂度,那这到底是什么意思。我们对于同一个问题经常有不同的解决方式,比如排序算法就有十种经典排序(快排,归并排序等),虽然对于排序的结果相同,但是在排序过程中消耗时间和资源却是不同。对于不同排序算......
  • 大根堆和小根堆在海量数据的top N问题中,时间复杂度O(nlogN)
    堆可视化操作演示:https://visualgo.net/zh/heap堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:小根堆:Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者大根堆Key[i]>=Key[2i+1]&&key>=key[2i+2]即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。堆分为大根堆......