acm算法之图论
魔法自动机
硕士在读,主要做医疗软件开发和医学图像处理。
展开
-
acm专题学习之生成树(一)最小生成树入门+POJ1251
题意:给你n个点,右n-1条边,每个边都有一个权值,让你求出最小生成树扩展:最小生成树最小生成树的概念:在一副加权连通图中,最小生成树包含原图中的所有 n 个结点且权值和最小,并且有保持图连通的最少的边(说的就是不会成环)。解决最小生成树的算法:prime和kruskal算法prime算法:先任意选择一条边(一般直接选择第一条),连接与其相连权值最小的点,然后两个点成为一个集合...原创 2018-08-09 23:58:14 · 1138 阅读 · 0 评论 -
acm专题学习之最短路(一)Dijkstra算法+poj-2387
题意:有n个点,给你 t 条带权路,求出从1到n点的最短路条件:t 条带权路(有路可能会重复)Dijkstra算法:(Dijkstra算法只能应用于不含负权值的图) 算法思路:用一个数组dis记录下所有点到起点的最短距离,最后取dis[终点]。进行n-1次查找,每次找到没有被拜访过离起点最小距离的点,再刷新dis数组。 ...原创 2019-02-10 12:14:22 · 331 阅读 · 0 评论 -
acm专题学习之生成树(二)次小生成树+HDU-4081
题目:秦始皇想要修路,他只想着修总长度最小(最小生成树)。但有个道士告诉他,可以用魔法修一条路,不耗费人力财力的一条魔法路。秦始皇想要使非魔法道路总长度尽可能小,道士希望尽可能多的人受益。最终决定:修魔法路的两个城市,(两个城市的总人口)/(非魔法道路总长度)必须是最大。输入:t个测试数据,n个城市,每个城市输入为坐标(x,y)和人口p输出:(两个城市的总人口)/(非魔法道路总长度)最大值...原创 2019-02-16 12:18:15 · 309 阅读 · 0 评论 -
acm专题学习之最短路(二)Floyd算法+UVa567_Risk
题目:有20个城市,只能征服相邻的城市,让求任意给定两个城市的最短路Floyd算法:(多源最短路径)用于求任意两个点之间的最短路径算法的思路:枚举每两个点,枚举中间必须经过中转点,取最小值(动态规划算法dis(i,j) =min(dis(i,k) + dis(k,j),dis(i,j)))与Dijkstra区别:1Dijkstra是单源点,Floyd是多源点 2Dijkstra不存...原创 2019-02-16 22:59:47 · 194 阅读 · 0 评论 -
acm专题学习之最短路(三)SPFA算法+UVa558_Wormholes
基础:Bellman-Ford算法:是求含负权图的单源最短路径的一种算法,也可以用来判断是否具有负权环。Bellman-Ford实现思路:和dij有点类似,使用dis[ ]数组(更新记录每个点到起点s所需要的最短路),per[ ]数组(用来记录最短路每个点的父结点)。进行n-1(点的个数-1)次的松弛操作(对dis[ i ]进行修改),如果n-1次松弛过后,还能够再进行松弛,就说明含有负权...原创 2019-02-19 11:41:21 · 182 阅读 · 0 评论 -
acm专题学习之二分图(一)二分图判定(染色)
二分图:二分图是什么:顶点集可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。(边不能连接同一个子集的点)图示:二分图染色:情况:给一个图,没有自环,没有同一条边连着多个点有两种颜色给你染,相连的两个点不能染成不同颜色用途:可以用来判断是不是二分图对于连通图思路:bfs遍历,第一个点取一种颜色,遍历的时候看看会...原创 2019-04-03 21:42:52 · 775 阅读 · 0 评论 -
acm专题学习之最短路(四)次短路+LightOJ - 1099
次短路定义:找出第二短的路径长,次于最短路。思路:求两次最短路,一个是到起点的最短路,一个是到终点的最短路。然后遍历每一条边,每一条边的两个点分别到终点和起点的最短路的和+边的长度,如果这个和大于最短路,就让ans取这些路中的最小值就好了。LightOJ - 1099题意:给你n个点,m条边,让你求出次短路(次短路的长度要小于最短路,相同的不算)思路:次短路的思路。代码:...原创 2019-04-07 10:50:27 · 298 阅读 · 0 评论 -
acm专题学习之网络流(一)最大流+CSU2073: Tile Cut
网络流最大流问题网络流最大流问题:给定有向图,有两个特殊的源点s和汇点t,每条边有一定的容量,问满足从s到t的最大流量一些词汇的理解:流量flow,是指每条边实际流过的量 容量capacity,是指每条边可以通过的最大流量 残量residual,是指每条边的上的容量和流量之差最大流基本算法——增广路算法增广:从源点到汇点的某一条路,每条边的残量取最小值d,这个最小值就是这条路...原创 2019-03-30 23:51:01 · 427 阅读 · 0 评论