sdut 图的深度遍历
图的深度遍历
Problem Description
Input
Output
Example Input
1 4 4 0 1 0 2 0 3 2 3
Example Output
0 1 2 3
#include<iostream>
#include<cstring>
using namespace std;
int map[100][100],path[10000],visit[10000]={0},l=1,n,m;
void DFS(int st,int ed)
{/*if(st==ed){for(int i=0;i<l-1;++i)cout<<path[i]<<' ';cout<<path[l-1]<<endl;}*/visit[st]=1;//标记已经访问过 for(int i=0;i<n;++i){if(!visit[i]&&map[st][i]){cout<<' '<<i; DFS(i,n-1);//--l;//visit[i]=0;//记忆化搜索 }}
}
int main()
{int t;cin>>t;while(t--){memset(visit,0,sizeof(visit));memset(map, 0, sizeof(map)); cin>>n>>m;for(int i=0;i<m;++i){int a,b;cin>>a>>b;map[a][b]=map[b][a]=1;}cout<<0;DFS(0,n-1);cout<<endl; }return 0;
}
2018/03/25更新java代码
public class Main {private static int[][] go = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 } }; // 上下左右public static int m = 0, n = 0, s = 0;private static int[][] vis = new int[10][10];public static void main(String[] args) {int N;Scanner sc = new Scanner(System.in);N = sc.nextInt();for (int i = 0; i < N; i++) {init();m = sc.nextInt();n = sc.nextInt();int[][] a = new int[m][n];for (int i1 = 0; i1 < m; i1++) {for (int j = 0; j < n; j++) {a[i1][j] = sc.nextInt();}}dfs(a, 0, 0);System.out.println(s);s = 0;}}private static void init() {for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {vis[i][j] = 0;}}}private static void dfs(int[][] a, int x, int y) {if (x == m - 1 && y == n - 1) {s++;return;} else { for (int i = 0; i < 4; i++) {int xx = x + go[i][0];int yy = y + go[i][1];if (xx >= 0 && xx < m && yy >= 0 && yy < n && vis[xx][yy] ==0 && a[xx][yy]==0) { x = xx;y = yy;System.out.println("x:"+x+"--"+"y:"+y);vis[x][y] = 1;dfs(a, x, y);System.out.println("yes I do "+x+'-'+y);vis[x][y] = 0;}}}}
}
sdut 图的深度遍历相关推荐
- python来进行图的深度遍历和广度遍历
python来进行图的深度遍历和广度遍历 # -*- coding: utf-8 -*- """ Created on Sat Sep 14 18:01:27 2019@ ...
- 图的深度遍历(邓俊辉版)
文章目录 一.说在前面 二.代码实现和输出 一.说在前面 邓老师把图的边分成了4种:tree,backward,forward,cross.个人觉得,这样分的意义就在于对遍历树来说,原图的各条边各自有 ...
- 图的深度遍历和广度遍历算法
图的深度遍历和广度遍历算法 图的深度遍历可以简单理解为一条道走到黑,首先访问图中任一起始顶点v,再访问与v顶点邻接且未被访问过的顶点w1,再访问与w1邻接且未被访问过的顶点w2,重复上述操作,若不能继 ...
- 图的深度遍历和广度遍历
理论部分 图的深度遍历和广度遍历都不算很难像极了二叉树的前序遍历和层序遍历,如下面的图,可以用右边的邻接矩阵进行表示,假设以顶点0开始对整幅图进行遍历的话,两种遍历方式的思想如下: 1. 深度优先遍历 ...
- 【数据结构】图的深度遍历与广度遍历
图是一种常见的数据格式,它的遍历主要分为两种: 深度优先遍历(DFS):类似于二叉树的前序前序遍历 广度优先遍历(BFS):类似于二叉树的层次遍历 一.出度与入度 在讲图的遍历之前,我们需要先了解图的 ...
- 图的深度遍历 (邻接矩阵)
知识讲解: 图的遍历分为两种,深度遍历与广度遍历.这里讨论深度遍历. 以上图为例讨论图(图片来自<算法笔记>)的深度遍历: 设图形的顶点数为n. 先从顶点v0开始,用一个数组vis[n]来 ...
- 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf
图的深度优先遍历的C语言实现.pdf 维普资讯 九 江 职 业 技 术 学 院 学 报 JournalofJiujiangVocational&TechnicalCollege 2004.2 ...
- html递归遍历,图的深度遍历是一个递归过程
数据结构问题:图的深度优先遍历中有递归的应用,数据结构问题:图的深度优先遍历中有递归的应用,要用到栈,图中顶点是首先你得明白函数调用本身就是通过栈来实现的. 调用函数是入栈,而函数返回是出栈. 为什么 ...
- 数据结构——图的深度遍历
图的遍历方式有两种, 深度优先 广度优先 深度优先采用的是递归的方式来来实现,思想如下: 假设给定图G的初态是所有顶点均未曾访问过.在G中任选一顶点v为初始出发点(源点), **则深度优先遍历可定义如 ...
最新文章
- “环太平洋”走进现实,五角大楼研发人与武器互动的意念控制技术
- POJ3267The Cow Lexicon
- 【IM】关于稀疏学习和鲁棒学习的理解
- Vue + VueRouter + Vuex + Axios 抓取 GitHub 上的 Issues 来搭建个人博客站点
- mysql数据库如何让表单与表单关联共用_这样的表单如何做到和数据库相连,我想知道与SQL和mysql这两种的连接方法,在线等,谢谢各位!...
- 2020牛客暑期多校训练营(第二场)Just Shuffle
- [css] 使用css3画一个扇形
- 了解一点儿JavaConfig
- oracle sql中查询语句where中字段不为空用if怎么写_MyBatis手把手跟我做系列(三) --- 动态SQL标签...
- ruby web性能响应时间
- 视频编码格式、视频码率、视频帧率、分辨率的概念
- 金蝶K3 WISE 13.1版本服务器虚拟机环境部署
- 离散信号(七)| 离散傅里叶变换(DFT)推导
- 移动内部疯传的11篇VoLTE学习笔记,看懂了你也是技术大神(二)
- 如何利用Spring Boot框架开发一个全球化的应用程序
- 修理牧场( 哈夫曼算法 ,贪心 )
- 华北电力大学控制与计算机工程学院老师,华北电力大学控制与计算机工程学院导师教师师资介绍简介-杨静...
- idea上Run,Debug为灰色,执行main方法,单元测试run、debug点击后均没反应,像假死状态的解决方法
- 实例学习ansible系列(7)常用模块之ping/setup
- [虚拟现实] 手把手,一起开发一个基于VR的投篮球小游戏
热门文章
- JAVA入门级教学之(简单的程序测试)
- JAVA入门级教学之(方法递归习题)
- python中下拉菜单大小_自动化测试——Selenium+Python之下拉菜单的定位
- msp430中如何连续对位进行取反_四元数数控:如何保养视觉对位平台?
- python 随机_python1到3秒随机延时入坑python 心情舒畅
- uml 类图_UML-类图
- 最热门的10个Java微服务框架
- 苏州宾馆管理也计算机哪个学校好,苏州十大寄宿式中学学校排名榜
- 服务器能记录远程访问用户嘛,bat记录远程桌面连接登录信息
- 异步fifo_跨时钟域同步(异步FIFO)