草庐IT

图论之dfs与bfs的练习

dfs--深度优选搜索bfs--广度优先搜索迷宫问题--dfs问题:给定一个n*m的二维迷宫数组其中S是起点,T是终点,*是墙壁(无法通过),.是道路问从起点S出发沿着上下左右四个方向走,能否走到T点?能输出"YES",否则输出"NO"。88*****...*.S...*******.*******..**T..**.*.**.**.*..*....*...*****#includeusingnamespacestd;constintN=1e4+10;charg[N][N];//迷宫数组boolvis[N][N];//二维标记数组//方向数组intdx[]={0,0,-1,1};intdy[]

离散数学 --- 图论基础 --- 子图和补图,握手定理

第一部分---子图和补图1.生成子图:点集合不变,边集合是原图的边集合的子集2.导出子图:点集合是原图点集合的非空子集V,然后再在原图的边集合中找到两个端点均在点集合V中的边元素,并将这些边元素称成一个新的边集合,得到的这个边集合就是导出子图的边集合(点集合V和得到的新的边集合组成的新图是原图G的子图,被称为V导出的原图的子图,简称为V的导出子图)1.一个图G可以是自身的子图,生成子图和导出子图2.判断一个原图的子图是否是导出子图的方法:将子图中缺少的点在原图中删去,然后再将由于删去了点后少掉了一个端点的线给去掉,如果子图和这个修改后的原图相等的话,则这个子图就是原图的导出子图,否则就不是3.

【图论经典题目讲解】CF715B - Complete The Graph

CF715B−Complete The Graph\mathrm{CF715B-Complete\The\Graph}CF715B−Complete The GraphDescription\mathrm{Description}Description给定一张nnn个点,mmm条边的无向图,点的编号为0∼n−10\simn-10∼n−1,对于每条边权为000的边赋一个不超过101810^{18}1018的正整数权值,使得SSS到TTT的最短路长度为LLL。Solution\mathrm{Solution}SolutionWay 1\mathrm{Way\1}Way 1考虑将每111条长度为00

备战蓝桥杯---图论之建图基础

话不多说,直接看题:首先,这个不是按照字典序的顺序,而是以只要1先做,在满足后让2先做。。。。就是让数字小的放前面做+拓扑排序。我们可以先做1,看看它的前驱。举个例子:我们肯定要把1放前面做,然后就确定把1的前驱及其相连放前面。我们再看2,2没有,那就把2的前驱及其相连放1后面。看3,我们把3,6放最前面,同理,把5,4放在3后面,于是我们可以得到63541.我们发现这样子实现起来比较困难,这是因为限制关系造成的,我们知道首先要选的肯定在无前驱的点上,但至于要哪个无法根据现在的情况推断,这就造成了实现的复杂性。于是,我们可以反着看,我们把边反一下,把取第1个的思路换成取倒数第n个,这样子,最后

TOP100 图论

1.200.岛屿数量给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例1:输入:grid=[["1","1","1","1","0"],["1","1","0","1","0"],["1","1","0","0","0"],["0","0","0","0","0"]]输出:1示例2:输入:grid=[["1","1","0","0","0"],["1","1","0","0","0"],["0","0","1","0","0"],["

寒假12 图论

#define_CRT_SECURE_NO_WARNINGS1#include#includeusingnamespacestd;intconstN1=10010;intconstN2=100010;intarr[N1];intx[N2],y[N2];intmain(){ intn,m; cin>>n>>m; for(inti=1;i#define_CRT_SECURE_NO_WARNINGS1#include#includeintn,m;usingnamespacestd;booluse[1010][1010];intlu=0;boolarr[1010];intcnt[1010];voidd

【数学建模常用模型】图论专题

    图论是研究点、线间关系的一门学科。现实生活中,凡是涉及到事物间的关系,都可以抽象为图论模型。图论模型也是各大数学建模中常见的一种模型,主要用于计算、规划最短距离、路线等问题。下面介绍几个基本概念和算法。 单源最短路    单源最短路指的是构造网络中两点间的最短路就是找到连接这两个点的路径中所有边的权值之和为最小的通路。注意:在有向图中,通路中所有的弧应是首尾相连的。    单源最短路问题就是求从一个点出发,到网络其他各点的最短路求解单源最短路的常用算法是Dijkstra(迪杰斯特拉)算法,是由荷兰人EdsgerWybeDijkstra给出。求解思路——从始点出发,逐步顺序地向外探寻,每

【算法日志】图论 并查集及其简单应用

【算法日志】图论:并查集及其简单应用并查集概论并查集是一种算法设计思想,通过判断两个元素是否在同一个集合里,常用来解决一些和图相关的连通性问题。并查集主要有以下两个功能:将两个元素添加到一个集合中。判断两个元素是否是在一个集合之中(这一功能够有效判断是否成环)。主要思想:通过创建一个数组用来保每个点的最老根节点,以此来实现并查集的各种功能。具体模板如下:intn=1005;//n根据题目中节点数量而定,一般比节点数量大一点就好vectorfather=vector(n,0);//C++里的一种数组结构//并查集初始化voidinit(){for(inti=0;iu这条边加入并查集voidjoi

离散数学——图论(笔记及思维导图)

离散数学——图论(笔记及思维导图)目录大纲内容参考大纲内容参考笔记来自【电子科大】离散数学 王丽杰

c++ - 算法(C++/图论)

几天来我一直在努力解决一个算法问题,我尝试了很多方法来解决它,但它们不够准确/不够快,所以我指望你-我正在寻找获取提示或任何有用的信息。所以问题如下,有一个正方形的二维bool数组boolarray[n][n](n如您所料,它充满了1和0,但1总是分组在矩形中,就像这样:11100111000000111100该算法可以将两个零变为一个并形成尽可能大的形状(形成的形状不必是矩形)并返回形成该形状的数量。不计算对角线连接。例如:101010101应该返回7。问题是,这个算法应该尽可能快地工作,假设1000x1000数组的上边界需要1-2秒。所以我尝试了什么:首先,我将ones的正方形分组