![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 55
JingleLiA
这个作者很懒,什么都没留下…
展开
-
2020.9.26 360笔试第二题
题目大意给出一个带权无向图,没有自环和重边,给出两个节点s和t,求从s到达t的路径中的所有边里,边权最大的边的权至少有多大。保证s与t连通。用例以n(节点个数)、m(边数)、s、t,然后m行u、v、w(权的大小)给出,比如:5 6 1 51 5 1001 2 102 5 51 3 33 4 24 5 1选择从1->3->4->5的路径,经过3条w分别为3、2、1的边,因此答案为3。如果选择1->5或1->2->5则最大边权分别为100和10,都比3大。原创 2020-09-27 02:05:18 · 556 阅读 · 0 评论 -
岛屿问题合集
题目链接:岛屿数量题目描述:给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:[[‘1’,‘1’,‘1’,‘1’,‘0’],[‘1’,‘1’,‘0’,‘1’,‘0’],[‘1’,‘1’,‘0’,‘0’,‘0’],[‘0’,‘0’,‘0’,‘0’,‘0’]]输出: 1示例 2:输入:[[‘1’,‘1’,‘0’原创 2020-09-25 01:54:44 · 652 阅读 · 0 评论 -
leetcode126--单词接龙II
class Solution { HashMap<String,Integer> wordmap = new HashMap<>(); ArrayList<String> words = new ArrayList<>(); ArrayList<Integer>[] edges; int len; public boolean isOk(String s1,String s2){ int cnt = 0; .原创 2020-06-07 21:12:50 · 159 阅读 · 0 评论 -
昂贵的婚礼
http://blog.csdn.net/qq_21899803/article/details/52004901http://blog.csdn.net/helloiamclh/article/details/47956489 package aaa;import java.util.*;public class Main { static Scanner in原创 2017-09-13 20:49:01 · 313 阅读 · 0 评论 -
有向图找环
import java.util.*;public class Main { static Scanner in = new Scanner(System.in); static int N = 100; static int[][] G = new int[N][N]; static int[] path = new int[N]; static int[] visited = n...原创 2020-04-15 16:27:57 · 343 阅读 · 0 评论 -
拓扑排序解的个数求解
思路:删边回溯法步骤1:从图中选择一个入度为0的点且输出之 步骤2:从图中删除该节点及其所有出边(即与之相邻的所有点入度-1)反复执行这两个步骤,直至所有节点都输出,即整个拓扑排序完成;或者直至剩下的图中再没有入度为0的节点,这就说明此图中有回路,不可能进行拓扑排序。package recovery;import java.util.*;public class Main {...原创 2019-11-23 21:26:41 · 3583 阅读 · 4 评论 -
广度优先遍历图按照字母顺序打印路径
Description按照给定的起始顶点广度优先遍历图,每一次通过字母顺序选择顶点查找下一层邻接点,打印遍历顺序。Input输入第一行为测试用例个数,后面每一个用例用多行表示,用例第一行是节点个数n和开始顶点,用空格隔开,后面n+1行为图的邻接矩阵,其中第一行为节点名称。值之间使用空格隔开。Output输出遍历顺序,用空格隔开Sample Input 1...原创 2019-11-22 15:35:25 · 748 阅读 · 0 评论 -
深度优先遍历图并求它的最大深度
深度优先遍历Description按照给定的起始顶点深度优先遍历给定的无向图,尝试所有可能的遍历方式,打印遍历过程中出现的最大深度。Input输入第一行是用例个数,后面每个用例使用多行表示,用例的第一行是图中节点的个数n和起始点,用空格隔开,后面n+1行为图的邻接矩阵,其中第一行为节点名称。值之间使用空格隔开。Output输出深度优先遍历中遇到的最大深度。...原创 2019-11-22 15:10:08 · 1082 阅读 · 0 评论 -
拓扑排序并且输出一个可能的序列
如题描述:根据给出的图输出一个可能的拓扑序列。判断能否进行拓扑排序的关键是图是否存在环。这里我们用数组c的值表示顶点当前的状态。0代表没有被访问过,-1代表正在被访问,1代表该点及其子孙均被访问过,并且是不存在的环的点。那么我们用dfs去遍历,如果该点在被访问的过程中再次被访问,则证明存在环。或者该点没有被访问过但是在递归访问它的后继元素时存在环,也是返回失败。看代码:#include<io...原创 2018-06-08 18:12:29 · 1043 阅读 · 0 评论 -
使用dfs统计连通分量
如题所示,上代码:#include<iostream>#include<string>#include<algorithm>using namespace std; const int maxn = 10000;char mp[maxn][maxn];int m,n;//方向数组,8个方向 int dir[8][2]={{0,1},{1,0},...原创 2018-06-07 20:56:20 · 1042 阅读 · 0 评论 -
倒水问题--bfs+Priority_queue+二维标记数组
描述: 有3个容器(没有刻度),容量分别为a升,b升,c升。其中c升中装满油,另外两个空着。 要求你只用3个容器操作,最后使得某个容器中正好有d升油。要求求出最小的倒水量。分析:由于容器没有刻度,那么杯子里面的水肯定是整数。在倒水的时候,我们只能选择把自己倒完或者将别人倒满(没有刻度)。那么就相当于搜索一个隐式的图,图的每一个节点是三个杯子当前的状态,因此我们可以去搜索遍历这个图来达到目...原创 2018-06-11 20:11:24 · 835 阅读 · 0 评论 -
天梯赛--红色警报--dfs或者并查集
7-9 红色警报(25 分)战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0 < N ≤ 500)和M(≤ 5000),分别为城市个数(于是默认城市从0到N-1...原创 2018-03-17 13:33:42 · 346 阅读 · 0 评论 -
Oil Deposits --dfs
The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides th原创 2017-10-28 10:41:29 · 250 阅读 · 0 评论 -
蹲草丛-dfs或者bfs找最小的连着草丛i
题目描述众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄。他的伟大之处在于他特别喜欢蹲草丛阴人。某日,德玛西亚与诺克萨斯之间又发生了一场战斗,嘉文四世希望盖伦能带领一支K人的德玛西亚军队出战。战斗发生在召唤师峡谷。整个召唤师峡谷被分割成M行N列的一个矩阵,矩阵中有空地和几片草丛。这几片草丛中有些很大、有些很小。一个1×1的草丛能容纳3个士兵,盖伦坚信蹲草偷袭战术能战胜诺克萨斯军队,所以他希望他的军...原创 2020-06-05 11:05:23 · 505 阅读 · 0 评论 -
Colored Sticks --欧拉回路,并查集,字典树,
You are given a bunch of wooden sticks. Each endpoint of each stick is colored with some color. Is it possible to align the sticks in a straight line such that the colors of the endpoints that touch a...原创 2017-10-06 17:37:56 · 438 阅读 · 0 评论 -
dijkstra算法求解单源点最短路径
package aaa;import java.util.*;public class Main { static Scanner in = new Scanner(System.in); static final int INF = 0x3f3f3f3f; static final int MAXN = 110; static int matrix[][]...原创 2017-09-14 15:33:14 · 595 阅读 · 0 评论 -
Floyd Warshell 算法求解多源点最短路径
求解任意两个顶点之间的最短路径,思路:我们都知道,要使得两个顶点之间的路径变短,可以通过添加第三个顶点的方式来达到。即i到k,k到j使得路径变短,有的时候还要通过添加多个顶点来实现,基于这个原理假设一开始只允许通过1顶点进行变换路径,那么只需要判断e[i][1]+e[1][j]和e[i][j]的大小,不断更新,i 和 j都是从1到n,同理,继续使得可以通过的顶点变多,变为1,2顶点,推理过程一样,...原创 2017-09-17 15:31:40 · 626 阅读 · 0 评论 -
Bellman-ford算法求解单源点最短路径初始版本
Bellman-ford算法:可以用来求解负的权值的图对每个边进行枚举,最多进行n-1轮循环即可找到所有的最短路径,很多时候会少于n-1轮,所以加了check,代码里面已经比较清楚啦,import java.util.*;public class Main { static Scanner in = new Scanner(System.in); static int INF = 999...原创 2017-09-17 16:58:06 · 420 阅读 · 0 评论 -
dfs实现单源点最短路径求解
package aaa;import java.util.*;public class Main { static Scanner in = new Scanner(System.in); static int INF = 99999999; static boolean[] bool = new boolean[100]; static int[][] matrx = new i...原创 2017-09-17 15:03:09 · 723 阅读 · 0 评论 -
求解最短路径Bellman_Ford 算法优化版——结合队列
import java.util.*;public class Main { static Scanner in = new Scanner(System.in); static int INF = 99999999; static int[] dis = new int[100]; static int[] bck= new int[100]; static i...原创 2017-09-17 17:54:10 · 284 阅读 · 0 评论 -
Find a way -从两个点分别bfs
Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the c原创 2017-10-28 12:51:16 · 331 阅读 · 0 评论