图论
#
1900_
你热爱什么,你追求什么,你就成为什么
展开
-
最小生成树prim算法
Input输入的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。以后的n行中每行有n个用空格隔开的整数,对于第i行的第j个整数,如果不为0,则表示第i个顶点和第j个顶点有直接连接且代价为相应的值,0表示没有直接连接。当i和j相等的时候,保证对应的整数为0。输入保证邻接矩阵为对称矩阵,即输入的图一定是无向图,且保证图中只有一个连通分量。Output只有一个整数,即最小...原创 2019-10-22 22:18:48 · 506 阅读 · 0 评论 -
并查集练习--hdu1232&&poj1611&&poj2524
并查集模板//total数组用来计数//Find找根节点//Merge 合并两个集合int fa[N],total[N];void init(int n){for(int i=0;i<=n;i++)fa[i]=i,total[i]=1;} int Find(int x){return fa[x]==x?x:fa[x]=Find(fa[x]);}void Merge(int ...原创 2018-07-26 09:58:20 · 209 阅读 · 0 评论 -
网络流--最大流——Edmond-Karp算法&&Dinic算法
转载自:https://www.cnblogs.com/ZJUT-jiangnan/p/3632525.html网络流的相关定义:源点:有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点。 汇点:另一个点也很特殊,只进不出,叫做汇点。 容量和流量:每条有向边上有两个量,容量和流量,从i到j的容量通常用c[i,j]表示,流量则通常是f[i,j].通常可以把这些边想象成道路...原创 2019-05-03 20:32:30 · 290 阅读 · 0 评论 -
河南省第九届省赛信道安全--Dijkstra最长路
http://nyoj.top/web/contest/problem/cid/13/num/CC 信道安全Alpha 机构有自己的一套网络系统进行信息传送。情报员 A 位于节点 1,他准备将一份情报 发送给位于节点 n 的情报部门。可是由于最近国际纷争,战事不断,很多信道都有可能被遭到监 视或破坏。 经过测试分析,Alpha 情报系统获得了网络中每段信道安全可靠性的概率,情报员 A 决...原创 2019-05-02 17:27:16 · 542 阅读 · 6 评论 -
hdu1598-----Kruscal+枚举
http://acm.hdu.edu.cn/showproblem.php?pid=1598find the most comfortable roadTime Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10307Acc...原创 2019-05-02 10:59:27 · 133 阅读 · 0 评论 -
匈牙利算法原理理解
转载下大佬的讲解原博客地址:https://blog.csdn.net/dark_scope/article/details/8880547匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。-------等等,看得头大...原创 2019-04-05 14:25:09 · 3508 阅读 · 1 评论 -
二分图的最大匹配--匈牙利算法
首先 摆出概念二分图设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。如图 就是顶点能分成两部分 且两部分内的顶点互相不连的图 就是二分图匹配在图论中,一个「匹配」(matching)是一个边的集合,其中任意两条边...原创 2019-04-05 14:16:08 · 614 阅读 · 0 评论 -
[USACO06JAN]牛的舞会---洛谷P2863
tarjan算法(补充个题 牛客小白月赛12 I 题)大佬博客https://www.sohu.com/a/245954819_100201031https://www.cnblogs.com/shadowland/p/5872257.htmlhttps://blog.csdn.net/acmmmm/article/details/16361033ac代码#in...原创 2019-03-10 17:50:06 · 273 阅读 · 0 评论 -
51nod1649齐头并进-Dijkstra
链接这题就是个坑,题目意思解释的挺明白的,偏偏来个样例解释,解释的纯粹是误人子弟,害的我想了半天注意题目中这句话市长就在那些没有铁轨直接相连的小镇之间建造了公路也就是说 任意俩村 没有铁轨 就有公路样例解释:在样例中,火车可以按照1⟶3⟶4行驶,汽车1⟶2⟶4按照行驶,经过2小时后他们同时到过小镇4。这样例解释纯粹扯淡~也不能这么说 但是这个解...原创 2018-09-25 18:15:52 · 237 阅读 · 0 评论 -
Dijkstra算法(单源最短路)
Dijkstra算法算法的基本思想就是 从起点开始 找到距离它最短的点 然后从那个点出发 更新相邻顶点的最短距离下面用这个图当作例子解释一下 A是起点数组d来表示起点到各个点的最短距离 刚开始A除了到B C剩下的都到不了 是INF第一轮找出最短的 是B 然后A到B的距离是2 固定不变了 A到其他点的距离就是B到其他点的距离加2以此来更新其他点 每次都选择那些没...原创 2018-05-13 17:57:19 · 357 阅读 · 0 评论 -
并查集详解
网上看到一个聚聚写的并查集,清晰生动,很不错;原博客戳这里例子就是杭电上的畅通工程:http://acm.hdu.edu.cn/showproblem.php?pid=1232首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就...转载 2018-07-22 09:33:53 · 241 阅读 · 0 评论 -
HihoCoder -1174---拓扑排序
#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>#include<queue>#include<string.h>using namespace std;const int maxn= 1e5+7;int T,n,m,...原创 2018-07-25 21:36:28 · 284 阅读 · 0 评论 -
prime算法-最小生成树
算法的原理:以一个点开始,将这个点加入点集U,然后在它能到达的所有点(且未被选择过)里,选择路径权值最小的点。将这个点也加入点集U,然后在点集U中所有的点能到达的点(且未被选择过)中选择一个路径权值最小的点加入U。直到所有点都被加进去。就是最小生成树。复杂度:时间复杂度为O(n2)。与图中边数无关,该算法适合于稠密图。代码:模板题 hihocoder1097#incl...原创 2018-07-27 17:08:26 · 485 阅读 · 0 评论 -
HDU1198-----并查集
题目链接用的并查集,据说这题还可以用dfs,没去写。并查集模板//total数组用来计数//Find找根节点//Merge 合并两个集合int fa[N],total[N];void init(int n){for(int i=0;i<=n;i++)fa[i]=i,total[i]=1;} int Find(int x){return fa[x]==x?x:fa[x]...原创 2018-07-31 19:56:23 · 208 阅读 · 0 评论 -
Kruscal算法---最小生成树
Kruscal算法:Kruscal算法是加边。记录每条路的权值,然后每次都选择权值最小的边加入集合,同时选中的每条边的两个点也用并查集合并,直到所有的点都被加入了,就是最小生成树。复杂度:时间复杂度只和边有关系,O(E * logE)。代码:hihocoder1098#include<cstdio>#include<iostream>#...原创 2018-08-03 10:40:17 · 770 阅读 · 1 评论