
图论
大章鱼(张文哲
你所做的别只停留在 还行
展开
-
Kruskal算法简介
简述:Kruskal算法按照边的权值的顺序从小到大查看一遍,如果不产生圈(重边等也算在内),就把当前这条边加入到生成树中。至于这个算法为什么是正确的,其实和Prim算法证明的思路基本相同,在此就不详细说明了。接下来我们介绍如何判断是否产生圈。假设现在要把连接顶点u和顶点v的边e加入生成树中。如果加入之前u和v不在同一个连通分量里,那么加入e也不会产生圈。反之,如果u和v在同一个连通分量里,...原创 2020-03-22 23:58:13 · 815 阅读 · 0 评论 -
Prim算法 最小值生成树
前言:给定一个无向图,如果它的某个子图中任意两个顶点都互相连通并且是一棵树, 那么这棵树就叫做生成树( Spanning Tree )。如果边上有权值,那么使得边权和最小的生成树叫做最小生成树( MST,Minimum Spanning Tree )。例如我们假设有这样- - 个图:把顶点看作村庄,边看作计划要修建的道路。为了在所有的村庄间通行,恰好修建村庄数目-1条道路时的情形就对应了一...原创 2020-03-22 23:50:20 · 791 阅读 · 0 评论 -
Dijkstra详解
简述:让我们考虑一下没有负边的情况。在Bellman-Ford算法中,如果dp[i]还不是最短距离的话,那么即使进行dp[j]=d[i]+(从I 到j的边的权值)的更新,dp[j]也不会变成最短距离。而且,即使dp[i]没有变化,每一次循环也要检查-遍从出发的所有边。这显然是很浪费时间的。因此可以对算法做如下修改。(1)找到最短距离已经确定的顶点,从它出发更新相邻顶点的最短距离。(2)...原创 2020-03-22 23:30:50 · 372 阅读 · 0 评论 -
Bellman-Ford算法 单源最短路问题
定义:单源最短路问题是固定一个起点,求它到其他所有点的最短路的问题。终点也固定的问题叫做两点之间最短路问题。但是因为解决单源最短路问题的复杂度也是一样的, 因此通常当作单源最短路问题来求解。分析:记从起点s出发到顶点的最短距离为dp[i]。则下述等式成立。dp[i]=min {dp[i]+(从j到i的边的权值)|e=(j,)∈E} :如果给定的图是一个DAG(有向无环图), 就...原创 2020-03-22 23:16:57 · 358 阅读 · 0 评论 -
1003 Emergency
题目题意:给定n个城市m条路,以及每座城市你可携带的人数,问从s出发到e一共有多少条最短路径以及你可以带领的人数最大值。tip:深搜完事#include<iostream>#include<algorithm>using namespace std;int map[502][502];int teams[502]; int n,m,start...原创 2020-01-21 16:54:41 · 210 阅读 · 0 评论 -
二元二次不定方程(佩尔方程)
佩尔方程:形如然后就找一个特解,对于所有的解就可以求解出来了。。。。。原创 2019-10-21 11:55:52 · 1101 阅读 · 0 评论 -
最大传输量
最大传输量网络中有两台计算机s和t,现在想从s传输数据到t。该网络中一共有N台计算机,其中一些计算机之间连有一条单向的通信电缆,每条通信电缆都有对应的1秒钟内所能传输的最大数据量。当其他计算机之间没有数据传输时,在1秒钟内s最多可以传送多少数据到t?解法:使用Ford-Fulkerson算法的邻接矩阵实现最大流问题。#include<cstdio>#include&l...原创 2019-09-29 11:07:00 · 472 阅读 · 0 评论