DFS
@阿奇@
做一个勤勉、有趣、善良的人
展开
-
DFS
转载自http://blog.csdn.net/liangzhaoyang1/article/details/51415719深度优先搜索(DFS)【算法入门】1.前言深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念转载 2017-09-26 11:35:43 · 245 阅读 · 0 评论 -
DFS&&codeforce 598d
#include <iostream>using namespace std;char room[1010][1010];int M[1010][1010];// M不仅表示这个(x,y)属于第几个由若干个联通的房间组成的块,也表示空房间是否遍历过int ans,id=0;//ans是一个临时变量,储存每个块可以看到的画的数目;id表示块的序号int num[1010*1010];//nu原创 2017-07-21 17:46:14 · 275 阅读 · 0 评论 -
uva10336
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int T;int t;char map[100][100];//遍历过赋值为0int ch_num[128];//因为题目要求结果从大到小输出,所以这个数组记录每个字符块的数目,同时我们还需要记录最大值,看代码就轻易理解算法过程了i原创 2017-10-20 12:14:00 · 213 阅读 · 0 评论 -
uva315
#include <iostream>#include <vector>#include <stdio.h>#include <string.h>using namespace std;//放在vector之前int n;//节点数int count;//dfs为dfn编号的计数器int ans;int dfn[110];//遍历的顺序,也就是遍历的编号int low[110];/原创 2017-10-21 19:48:50 · 253 阅读 · 0 评论 -
uva260
#include <iostream>#include <stdio.h>using namespace std;int n;int b_win_flag;int count=1;char map[230][230];int dir[6][2]= {-1,-1,-1,0,0,1,1,1,1,0,0,-1};void dfs(int x,int y){ map[x][y]=0;原创 2017-10-22 15:22:10 · 177 阅读 · 0 评论 -
uva10926
#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>using namespace std;int n;bool map[110][110];//记录j是否是i的依赖点int ans[110];//每个点的依赖点数目,一旦赋值就不会变,因为我们是倒着求ans值的,也就是从最少的点开始……原创 2017-10-23 13:18:36 · 190 阅读 · 0 评论 -
uva469
#include <iostream>#include <cstdio>#include <string.h>using namespace std;int t;char map[110][110];bool vis[110][110];char tmp[110];int dir[8][2]= {1,0,0,1,0,-1,-1,0,1,1,-1,1,-1,-1,1,-1};int m原创 2017-10-24 23:41:33 · 193 阅读 · 0 评论 -
数据结构总结之dfs
1.大致就是: 2层for循环,循环!vis[i][j]的map[i][j],进行dfs, 在dfs中更新vis数组,dfs中,x < 0 || x >= n1 || y < 0 || y >= m || map_[x][y] != c||vis[x][y]都return ; 并在dfs中使得vis[x][y]=1; 最后用for循环遍历旁边的点,可以事先设置dxy[4][2] = {1,0原创 2017-12-16 20:55:05 · 742 阅读 · 0 评论