图论
文章平均质量分 56
shao1996
这个作者很懒,什么都没留下…
展开
-
图相关算法
Floyd求解除法运算给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ? 的结果作为答案。返回 所有问题的答案 。如果存在某个原创 2021-07-24 17:48:55 · 75 阅读 · 0 评论 -
2021-03-29
Floyd求多源最短路径public void floyd(int[][] nums, int n){ int[][] distance = new int[n][n];//任意两个顶点的距离 //初始化 for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if(i == j){原创 2021-03-29 21:39:47 · 78 阅读 · 0 评论 -
图论算法--单源最短路--dijkstra算法(优先队列优化)
1.算法描述与分析:(1、)解决的问题:求源节点 s 到其他节点的最短路,适合权值为正,且不含环的图。(2、)算法描述与实现:这里直接描述优先队列的dijkstra算法实现,该算法的实现和图的BFS搜最短路的算法类似,都是从根节点(源节点)开始搜索,遍历根节点的相邻节点,我们记源节点 s 到某节点 v 的最短距离是d[v],第一步就是遍历所有的节点,这个时候,我们需要一个优先队列,原创 2016-06-13 11:06:09 · 653 阅读 · 0 评论 -
CodeForces 687A--判断二分图
题意:判断一个无向图是否是一个二分图,如果是输出二分图的左右子集,如果不是,则输出-1.分析:判断二分图的关键:两个子集是否独立,即相邻两个顶点不在同一个子集,若是就是二分图,若不是,则不是二分图。因此经常用二分图染色法来判断一个无向图是否是二分图。为染色的顶点标记-1,然后对顶点进行染色(0),在对该顶点相邻的顶点然不同的颜色(1),dfs遍历各顶点,dfs(g[k][i],c^1)原创 2016-07-06 16:02:21 · 664 阅读 · 0 评论 -
HDU 5438--连通图
题意:几个无向图,将各无向图删除子节点,将无向图变成连通图,并求出点数是奇数的连通图的节点的值的和。输入:17 71 2 3 4 5 6 71 41 54 52 32 63 62 7输出:21分析:代码:小结:原创 2016-08-02 10:29:54 · 397 阅读 · 0 评论 -
POJ 3310--图
题意:一个无向图,如果这个无向图上有一条路径能将所有的度数大于等于2的节点串联起来,而且这个无向图没有环而且是连通的,就输出Graph 2 is a caterpillar否则输出Graph 1 is not a caterpillar。输入:22211 2 2 3 2 4 2 5 2 6 6 7 6 10 10 8 9 10 10 12 11 12 12 13 1原创 2016-08-19 20:36:46 · 409 阅读 · 0 评论