你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。 我们这里说的距离是『曼哈顿距离』( Manhatta ...
分类:
其他好文 时间:
2020-03-29 18:07:14
阅读次数:
73
给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入:11110110101100000000 输出: 1示例 2: 输入:110001100000100 ...
分类:
其他好文 时间:
2020-03-28 01:09:11
阅读次数:
78
题目描述 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N?1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式: 输入第1行给出2个整数N(0 include define MAXSIZE 10 struct G ...
分类:
其他好文 时间:
2020-03-27 12:35:47
阅读次数:
138
Dinic 时间复杂度最坏 O(n*n*m) 平均O(n)。 算法思路:用BFS构建层次图,如果汇点不在层次图中则结束算法返回最大流,否则在层次图中DFS找到图中所有增广路,增广结束后重新建立层次图。 优化:多路增广优化:将节点的所有增广路的到的流量记录下来直接返回。 炸点优化:若改点无流量直接弃掉 ...
分类:
编程语言 时间:
2020-03-26 19:19:08
阅读次数:
95
广度优先搜索(BFS) 主要用于树的层序遍历或图的最短路径寻找,主要使用队列queue来完成。 ①树的层序遍历:使用队列保存未被检测的结点,结点按照宽度优先的次序被访问和进出队。 ②有向无环图的最短路径查找:由于有向无环图的某个节点的next节点可能会与另一个节点的next节点重复,所以我们需要记录 ...
分类:
其他好文 时间:
2020-03-26 17:50:35
阅读次数:
78
大家想一想,spfa是从bfs演化过来的,dijkstra是贪心思想,由此可见,这些“高级”的最短路算法都是有基础算法演化得来的。 而我今天要说的算法就是由基础的动态规划演化出来的最短路算法-floyd 还有用一到题来开启今天的内容:GF和猫咪的玩具 题意分析:有n个圆环,将两个圆环用力拉可以将这两 ...
分类:
其他好文 时间:
2020-03-26 15:21:40
阅读次数:
100
1、面向过程:注重解决问题的步骤,分析问题需要的每一步,实现的函数一次调用; 2、面向对象:这是一种变成思想,将数据和处理数据的程序封装到对象里了; 面向对象特点:抽象、继承、封装、多态; 优点:提高代码的复用性和维护性; 目录 一、三大基本特征:封装、继承、多态 1、封装 2、继承 3、多态 二、 ...
分类:
其他好文 时间:
2020-03-25 19:20:27
阅读次数:
71
依照题目要求,即是不能从2流到1去,那么就是最小割。 从2向0,1连边,从0向0,1连边,然后跑最大流。 代码如下: #include<bits/stdc++.h> using namespace std; #define inf 1e9 const int maxn=105; const int ...
分类:
其他好文 时间:
2020-03-25 19:06:11
阅读次数:
70
很多问题都可以归结为图的遍历,但这些问题中的图却不是事先给定、从程序中读入的,而是由程序动态生成的,称为隐式图。 回溯法一般是要找一个(或者所有)满足约束的解(或者某种意义下的最优解)。 路径搜索问题可以归结为隐式图的遍历,它的任务是找到一条从初始状态到终止状态的(最优)路径。 BFS是图的广度遍历 ...
分类:
其他好文 时间:
2020-03-25 01:19:47
阅读次数:
94
前面介绍了深度优先搜索,可知DFS是以深度作为关键词的,即当碰到岔道口时总是先选择其中的一条岔路前进,而不管其它的岔路, 直到碰到死胡同时才返回岔道口并选择其它岔路。接下来介绍的广度优先搜索(Breadth First Search,BFS)则是以广度为第一关键词, 当碰到岔道口时,总是先依次访问从 ...
分类:
其他好文 时间:
2020-03-24 23:17:24
阅读次数:
71